数组
在javascript中,数组可以容纳任何值,也不要需要预先设置大小,数组通过数字进行索引,但因为数组也是对象,所以也可以包含键值和属性(但它们并不计算在数组长度内),举例!
var arr=[];
arr[0]=1;
arr["foobar"]=2;
arr["foobar"] // 2
arr.foobar // 2
但这并不是个合理的做法,键值对和属性还是建议使用对象来存放
类数组
类数组是可以当作数组来使用的对象,但不能使用数组的方法,有时候需要将类数组转化为真正的数组,一般用indexOf(),concat(),forEach()等来实现
不是值的值
undefined类型只有一个值,那就是undefined,null类型也只有一个值,即null,它们的名称既是名称也是值,常用来表示空的值或者“不是值的值”,它们有些细微的差别,null倾向于意料之中,undefined倾向于意料之外,也就是null一般用来放在:这个变量我暂时用不到,先给它个空值占着。undefined则是,出现了意料之外的情况——没找到指定的值
值得注意的是:null是特殊关键字,不是标识符,不能拿来当变量使用和赋值,undefined是标识符,可以被当做变量来使用和赋值
不是数字的数字
如果数学运算的操作数不是数字类型,就无法返回一个有效数字,这种情况下返回值为NaN
NaN意为not a number,不过将它理解为无效数值或者坏数值可能更准确些,举例!
var a = 2 / "foo" // NaN
typeof a === "number" //true
换句话说,NaN是“不是数字的数字”,仍然是数字类型,它也不等于任何数,包括它自己
NaN != NaN // true
可以用isNaN()来判断一个值是否为NaN,不是数字则返回true,但这种方法也有个缺陷,那就是结果不太准确
var b = "foo"
window.isNaN(b) // true
因为它只检查“参数是否不是NaN,也不是数字”