九州体育网 - 十年信誉网站

关于作者

Discuss / JavaScript / 不给slice()传参,相当于复制一个Array,那为什么最后判断为false?

不给slice()传参,相当于复制一个Array,那为什么最后判断为false?

Topic source

LovinZZ

#1 Created at ...

var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G']; var aCopy = arr.slice(); aCopy; // ['A', 'B', 'C', 'D', 'E', 'F', 'G'] aCopy === arr; // false

阿星otaku

#2 Created at ...

当‘===’对两个复合类型(对象、数组、函数)的数据比较时,不是比较它们的值是否相等,而是比较它们是否指向同一个对象,上述代码中实际存在两个数组变量,但他们的值是相等的,不知道有没有说清啊

Kid丶Mid

#3 Created at ...

因为slice会返回新的数组,所以尽管aCopy和arr的内容一样,实际上他们的内存地址不同,所以aCopy===arr为false


  • 1

Reply

WARNING: You are using an old browser that does not support HTML5. Please choose a modern browser (Chrome / Microsoft Edge / Firefox / Sarafi) to get a good experience.