用好 null 和 undefined
本帖最后由 不二如是 于 2020-7-23 19:06 编辑null 与对象引用有关系,表示为空或不存在的对象引用。
当声明一个变量却没有向它赋值的时候,它的值就是 undefined 。
undefined 的值会在如下情况中出现:
[*]从一个对象中获取某个属性,如果该对象及其 prototype 链中的对象都没有该属性,该属性的值为 undefined
[*]一个函数如果没有显式通过 return 语句将返回值返回给其调用者,其返回值就是 undefined,但在使用 new 调用函数时例外
[*]JavaScript 的函数可以声明任意多个形参,当该函数实际被调用时,传入的参数的个数如果小于声明的形式参数的个数,那么多余的形式参数的值为 undefined
如果对值为 null 的变量使用 typeof 检测,得到的结果是 “object”。
而 typeof undefined 的值为 “undefined”。
null==undefined,null!==undefined。
与 null 不同,undefined 不是 JavaScript 的保留字,在 ECMAScript v3 标准中才定义 undefined 为全局变量,初始值为 undefined 。
因此,在使用 undefined 值时就存在一个兼容问题(早期浏览器可能不支持 undefined)。
除了直接赋值和使用 typeof 运算符外,其他任何运算符对 undefined 的操作都会引发异常。
不过,可以声明 undefined 变量,然后查看它的值,如果它的值为 undefined,则说明浏览器支持 undefined 值。
例如:
var undefined;
alert(undefined);
如果浏览器不支持 undefined 关键字,可以自定义 undefined 变量,并将其赋值为 undefined 。
例如:
var undefined=void null;
声明变量为 undefined,将其初始化为表达式 void null 的值。
由于运算符 void 在执行其后的表达式时会忽略表达式的结果值,而总是返回值 undefined 。
因此利用这种方法可以定义一个变量为 undefined,并将其赋值为 undefined 。
既然是将变量 undefined 赋值为 undefined,还可以使用如下方式:
**** Hidden Message *****
或者使用没有返回值的函数:
var undefined=function(){}();
alert(undefined);//"undefined"
可以使用 typeof 运算符来检测某个变量的值是否为 undefined:
var a;
if(typeof a=="undefined"){}
如果喜欢,别忘了评分{:10_281:} :
http://xxx.fishc.com/forum/201709/19/094516hku92k2g4kefz8ms.gif
这位鱼油,如果喜欢本系列Js帖子,请订阅 专辑 -->(传送门)(不喜欢更要订阅{:10_297:} ) 1 学习
666 6 1 {:5_90:} 感谢不二! 学习学习
页:
[1]