Javascript 中的空与未定义

问题描述 投票:0回答:1

在 Javascript 中,如果我使用

Array(10)
创建一个数组,它会创建一个包含 10 个空项的数组。如果我访问该数组中的任何项目,它将返回
undefined
。但是,如果我创建一个长度为 10 的数组并用
undefined
填充它,如下所示:
Array(10).fill(undefined)
,并访问该数组的任何项目,它也会返回
undefined
。同样,如果我使用
Number()
将空值强制转换为数字,它会返回
0
。但是,如果我使用
undefined
Number(undefined)
强制转换为数字,则会返回
NaN
。如何识别空值与特定的
undefined
值?

javascript undefined is-empty
1个回答
0
投票

您看到的“空”项目只是您的工具方式,表明您拥有一个数组,其属性少于数组长度所指示的属性。

var a = Array(3);
console.log(Object.getOwnPropertyNames(a)); // ["length"]

a.fill(undefined);
console.log(Object.getOwnPropertyNames(a)); // ["0", "1", "2", "length"]

JavaScript 中并不存在真正的空值类型,只是缺少属性,如果您确实需要,可以检测到该属性。

var a = Array(3);
console.log('0' in a);

a.fill(undefined);
console.log('0' in a);

© www.soinside.com 2019 - 2024. All rights reserved.