Mau*_*aes 14 javascript arrays
在Javascript中,为什么
> var myArray = new Array(3);
Run Code Online (Sandbox Code Playgroud)
不同于:
> var otherArray = [*null*, *null*, *null*];
Run Code Online (Sandbox Code Playgroud)
?
Obs:(myArray == otherArray)退货false.
而且,我怎么能得到一个变量,就像otherArray一个充满'nulls'的数组,但是我想要的是什么尺寸?
编辑
[undefined, undefined, undefined]
Run Code Online (Sandbox Code Playgroud)
也不等于myArray.
小智 75
使用EcmaScript 6(ES2105),创建一个包含例如五个空值的数组就像这样简单:
const arr = new Array(5).fill(null);
Run Code Online (Sandbox Code Playgroud)
这var myArray = new Array(3);将创建一个空数组。因此,由于这个原因,myArray和otherArray是不同的数组。此外,即使它们具有相同的值(三个undefined值),数组也不会相同。数组是一个对象,变量myArray保存对该对象的引用。具有相同值的两个对象并不相同。
例如,
var a = new Object();
var b = new Object();
console.log(a===b); // outputs false.
Run Code Online (Sandbox Code Playgroud)
除此之外:
var customerA = { name: "firstName" };
var customerB = { name: "firstName" };
console.log(customerA===customerB); // outputs false.
Run Code Online (Sandbox Code Playgroud)
更新
此外,在甚至索引都没有初始化的情况下var myArray = new Array(3),正如保罗在评论中正确指出的那样。
如果你尝试这样做:
var array = [1,2,3];
console.log(Object.keys(array));
Run Code Online (Sandbox Code Playgroud)
您将得到以下输出:
["1","2","3"];
Run Code Online (Sandbox Code Playgroud)
如果你尝试这样做:
var array = new Array(3);
console.log(Object.keys(array));
Run Code Online (Sandbox Code Playgroud)
你将得到输出:
[]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22223 次 |
| 最近记录: |