无法获取未定义或 null 引用的属性“length”_JavaScript 的 Undefined、NaN和Null

b7700b45bc247f2eab06ee8c79b70a9f.png

一、Undefined

undefined 属性用于存放 JavaScript 中未定义的值

它表示变量声明过但并未赋过值

提示:无论什么情况下都没有必要把一个变量的值显式地设置为undefined,但是设置这个值为Null可以释放这个对象的内存,把此变量的指针设置为空。

var person;                  // 值为 undefined(空), 类型是undefined

二、NaN

NaN 即非数值(Not a Number)

NaN 属性 与 Number.Nan 属性相同。

提示: 请使用 isNaN() 来判断一个值是否是数字。原因是 NaN 与所有值都不相等,包括它自己。但是在Set集合中NaN被判定为和它自己相等。

深入探讨:参考维基百科

NaN(NotaNumber,非数)是计算机科学中数值数据类型的一类值,表示未定义或不可表示的值。常在浮点数运算中使用。首次引入NaN的是1985年的IEEE 754浮点数标准。

这也就解释了下面的现象 typeof NaN == ‘number’

console.log(typeof NaN);

//输出 number

所以这里不是js设计上的问题。

你可以把 Not a Number 理解为特殊的数字,就像无穷大无穷小也是特殊的数字一样, Not a Number 的字面意思则可以理解为它是一个不可以表达出来的数字。

三、Null

在 JavaScript 中 null 表示 "什么都没有"。

null是一个只有一个值的特殊类型。表示一个空对象引用。

从逻辑角度来看,null值表示一个空对象指针,而这也正是使用typeof操作符检测null值会返回“object”的原因。

提示:用 typeof 检测 null 返回是object。null 和 undefined 的值相等,但类型不等

typeof undefined             // undefined
typeof null                  // object
null === undefined           // false
null == undefined            // true

四、如何判断这三者

Undefined 使用 typeof

let some;
if (typeof some == "undefined") {
   alert("this is undefined");
}

NaN 使用 isNaN()

let some=0/0;
if (isNaN(some)) {
   alert("this is NaN");
}

Null 的判断

let exp=null;
if(exp===null){
    alert("is null");
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值