上方截图取自红宝书《JavaScript高级程序设计》,我的理解是在concat在连接数组的时候需要查看属性Symbol.isConcatSpreadable
的值是真值还是假值。
如果为假值就不打平数组,把整个数组连接到数组的最后,但是事实上并不是这样的?
这是我自己测试的截图
大佬们知道这是为什么吗?
上方截图取自红宝书《JavaScript高级程序设计》,我的理解是在concat在连接数组的时候需要查看属性Symbol.isConcatSpreadable
的值是真值还是假值。
如果为假值就不打平数组,把整个数组连接到数组的最后,但是事实上并不是这样的?
这是我自己测试的截图
大佬们知道这是为什么吗?
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
对于真·数组来说,没有 @@isConcatSpreadable 这个 symbol 也是没有关系的,数组默认支持 concat spreabable,除非你手动设置一个非 undefined 的值。
参见 ES6 的 Spec:
参考:
ES6 spec sec-isconcatspreadable: https://262.ecma-internationa...