美文网首页
js中的not defined、undefined、null以及

js中的not defined、undefined、null以及

作者: 小铁匠 | 来源:发表于2019-01-21 16:29 被阅读0次
1.not defined
 console.log(a);
//报错:a is not defined 终止运行

执行结果:报错并提示:Uncaught ReferenceError: a is not defined,如图:


QQ图片20190121152351.png

个人理解:not defined可以翻译为未定义的,上面代码中的a没有被定义,所以会报错并提示not defined。

2.undefined

一个定义了但未赋值的变量:

var a;
console.log(a);
//未报错,提示: undefined

一个定义了但把值赋为undefined的变量:

var a = undefined;
console.log(a);
//未报错,提示: undefined

一个对象没有赋值的属性:

console.log(window.a);
//未报错,提示: undefined
var a = [];
console.log(a.b);
//未报错,提示: undefined
var a = {};
console.log(a.b);
//未报错,提示:undefined

一个没有返回值的函数:

function a() {
}
console.log(a())
执行结果:上面代码执行结果一样:不会报错,会打印出undefined,如图: QQ图片111.png

个人理解:undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。典型用法是:

(1)变量被声明了,但没有赋值时,就等于undefined。

(2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。

(3)对象没有赋值的属性,该属性的值为undefined。

(4)函数没有返回值时,默认返回undefined。

注意:not defined 和 undefined 的typeof()的值都为"undefined",所以无法用typeof()来判断这两者。

3.null
var a = document.getElementById('main');
console.log(a);
执行结果:不会报错,会打印出null,如图: null.png

null表示"没有对象",即该处不应该有值。典型用法是:

(1) 作为函数的参数,表示该函数的参数不是对象。

(2) 作为对象原型链的终点。
    Object.getPrototypeOf(Object.prototype)
    // null

个人理解:上面的代码中如果实际上没有id为main的元素,a则是null,所以null是真正不存在的东西。另外null是一个只有一个值的特殊类型。表示一个空对象引用,用typeof检测返回是object。第二种的undefined是派生自null,所以有undefined==null。

4.NaN
var a;
console.log(a*2);
执行结果:不会报错,会打印出NaN,如图: nan.png

个人理解:NaN是"Not a Number " 的简写,从字面上看为不是数字的意思,当运算无法返回正确的数值时,就会返回NaN值。也可以理解一下W3C给出的定义和用法:NaN 属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。可以把 Number 对象设置为该值,来指示其不是数字值。
注意:null是一种特殊的object;NaN是一种特殊的number。

相关文章

网友评论

      本文标题:js中的not defined、undefined、null以及

      本文链接:https://www.haomeiwen.com/subject/kdpcjqtx.html