今天遇到了一个很诡异的问题,Firefox下好好的页面,在IE下却接二连三的报错,这到底是什么地方产生的错误。

 经过一上午的仔细排查,发现了真凶原来是IE对于对象和数组定义的严格限制。

在JS中,我们一般定义数组和对象都如下:

var arr = [

  arr1,

  arr2,

  arr3,

  arr4

];

对象:

var obj = {

  param:one,

  param:two,

  param:three

};

如果最后的一项多了一个“,”,那么在IE中就会产生错误,从而最终导致引用的JS文件失效。

例如:

<script type='text/javascript' src='a.js'></script>

function a(){

...

}

var obj = {

  param:a,

  param:b,

  param:c,

<script type='text/javascript' src='b.js'></script>

a();

alert(obj);

 这个时侯就会出现函数调用的错误,如果文件小函数少的时候比较容易发现,如果函数很多,而恰恰对象的定义放在文件末尾的话,那就比较痛苦了。

记下这个问题,在今后要格外的注意呢