今天开发过程中遇到一个bug,困扰了很长时间总结一下
数组使用字面量的方式定义:
let a = [1, 2, 3]
这样写很正常,但是如果我们在数组最后一项后面加一个 " , " ,这个时候问题就出现了
我们可以看到在IE8浏览器下,如果数组最后一项后面存在 " , " 那么浏览器就会把数组的长度计算为原数组长度加1。这个时候我们用for循环循环数组的时候,会循环到数组长度的下一项,这时候获取的值是undefined,就会造成问题。
查了一下原因,IE8使用的是ECMAscript 3 标准,但是其他浏览器使用的是ECMAscript 5 ,所以就产生了这种差异。所以定义数组,最后一项后还是不要添加 " , " 了,说不定就出错了。
附上一张其他浏览器运行上述代码的图片: