关于['a',undefined,null].toString() 的结果疑问
- js红皮书上说数组的toString() 方法的结果,实际是调用了数组的每一项的toString()方法,并且以,拼接
- 还是书上说,null undefined 没有toString()方法,转换成字符串需要 String(undefined)这种形式,结果是
'undefined'
所以[‘a’,undefined,null].toString()的结果为什么是'a,,'
而不是'a,undefined,null'
?
3 回复
这个问题可以参考JavaScript Reference中Array.prototype.join()方法说明,里面的Description中有提到:
以下内容均来源于ES8标准
- array的toString会调用array.join() (22.1.3.28节第2条)
- array.join() 的实现中,若element值为
undefined
或null
则转换为空字符串,否则为ToString(element)(22.1.3.13节第2.c条)
感谢楼上两位解惑