摘要: 原文:http://www.2ality.com/2012/09/expressions-vs-statements.html本文要讲的是JavaScript中非常重要的两个知识点:表达式(expressions)和语句(statements)之间的区别.1.语句和表达式JavaScript中的表达式和语句是有区别的.一个表达式会产生一个值,它可以放在任何需要一个值的地方,比如,作为一个函数调用的参数.下面的每行代码都是一个表达式:myvar3 + xmyfunc("a", "b")语句可以理解成一个行为.循环语句和if语句就是典型的语句.一个程序是由一 阅读全文
posted @ 2012-09-16 23:57 紫云飞 阅读(18768) 评论(11) 推荐(6) 编辑
摘要: 原文:http://www.2ality.com/2012/06/dense-arrays.html一般来说,JavaScript中的数组是稀疏的,也就是说,数组中的元素之间可以有空隙,因为一个数组其实就是一个键值映射.本文解释了如何创建稀疏数组和不稀疏的数组.1.稀疏数组创建一个指定长度的稀疏数组很简单:> var a = new Array(3);> a[ , , ]> a.length3> a[0]undefined当你遍历它时,你会发现,它并没有元素.JavaScript会跳过这些缝隙.> a.forEach(function (x, i) { conso 阅读全文
posted @ 2012-09-16 15:08 紫云飞 阅读(8737) 评论(3) 推荐(3) 编辑
摘要: 原文:http://www.2ality.com/2012/08/instanceof-object.html问题是: 什么对象不是Object的实例?换句话说就是:变量v是什么样的值,可以让下面的三个表达式都为true?typeof v === "object"v !== null!(v instanceof Object)1.关于v,我们知道些什么?上面的表达式告诉我们关于v的两件事:它是一个对象,但他不是Object的实例.1.1 v是一个对象前两个表达式使用typeof操作符来确保v是一个对象.第二个表达式是必须的,因为typeof有个bug,那就是在操作原始值nu 阅读全文
posted @ 2012-09-16 00:07 紫云飞 阅读(2165) 评论(1) 推荐(2) 编辑