标签:
js中,对于在生命后没有给定初值的变量,就会给定一个undefined的值。不过前提是变量必须是已经被声明了的,如果是对于没有声明的变量,就会报错。
v1; //报错,vi is not defined var v2; //undefined var v2 = ""; //null
undefined的典型用法:
1. 变量被声明了,但是没有赋值,就是 undefined ;
2. 调用函数时,应该提供的参数却没有提供,那么默认参数就是 undefined;
3. 对象中没有赋值的属性,该属性就是 undefined;
4. 函数没有返回值,就会默认返回 undefined。
相比起来,null 表示一种特殊的object的值,用来表示空引用的概念。 如果要让一个标识符声明为object,但暂时不给他实例,便可以先把他初始化为 null, 以便以后来使用。
null的典型用法:
1. null 表示没有对象,即此处不应该有任何值;
2. 作为函数的参数,表示该函数的参数不是对象;
3. 作为对象原型链的重点。
一个很有趣的语句对:
undefined == null; // true undefined === null; // false
网上有个很有趣的说法,当然我也感觉这种说法很有道理:
undefined 是 从 null 派生出来的: 基本数据类型都有一个与之相对应的引用类型。 就像 number 对应 Number , boolean 对应 Boolean......他们具有相同的行为,并且相互之间都会有类似拆箱和装箱的操作。
有关 null 和 undefined 的行为:
1. null 参与数值运算会自动转换为 0 ;
2. typeof null 会返回 object , 因为 null 表示的是无值的引用;
3. undefined 是全局对象的一个特殊属性,其值为 Undefined 类型的专有值 undefined;
4. undefined 参与任何数值运算的时候,其结果一定是NaN;
都是原来笔记上整理的,出处有些已经找不到了,等的以后再看到出处的时候补上,不好意思。。。
标签:
原文地址:http://www.cnblogs.com/adforever/p/4760782.html