兼容兼容兼容:浏览器兼容性大集合
toFixed()方法:121页
在给toFixed传入0的情况下,IE 8 及之前版本不能正确舍入范围在{[-0.94,-0.5], [0.5, 0.94]}之间的值。对于这个范围的值,IE会返回0,而不是-1或1。
IE9修复了这个问题
其它浏览器都能返回正确的值
delete操作符:194页
使用delete操作符删除全局属性时:
IE9以及其他浏览器:
使用var 语句添加的window属性(即全局变量)的[[Configurable]]特性的值为false,因此这样定义的属性不可以通过delete操作符删除(delete操作返回false)。
直接在window对象上定义的属性可以通过delete操作符删除,[[Configurable]]特性的值为true(delete操作返回true).
IE8及以下浏览器:
IE8及以下版本在遇到使用delete删除window属性的语句时,不管该属性的[[Configurable]]是何值,都会抛出错误,以示警告。
如:
var age = 29;
delete window.age;//returns false 在IE<9时抛出错误,在其他所有浏览器中都返回false
alert(window.age);//29
window.color = 'red';
delete window.color;//returns true 在IE<9时抛出错误,在其他所有浏览器中都返回true
alert(window.color);//undefined
Object引用类型相关
对象字面量
在对象字面量的最后一个属性后面添加逗号" , ",会在IE7及更早版本和Opera中导致错误
数组引用类型相关
1.数组字面量表示法
var values = [1,2,]//2项或3项 第3项为undefined
var values = [,,]//2项或3项 每项都是undefined
IE8以及以前有bug,两values都是3项
IE9+以及其他浏览器都是2项
2.低版本浏览器不支持:Array.isArray()方法
(ES5添加,支持浏览器:IE9+,FIREFOX 4+,SAFARI 5+ ,OPERA 10.5+,CHROME)
3.数组的位置方法 (支持浏览器:IE9+,......................)
indexOf(term,[start])
lastIndexOf(term,[startRight])
4.迭代方法 (IE9+,.......................)
every:numbers.every(function(term,index,array)){...}
filter:返回 返回值为true的项所组成的数组
forEach:无返回值
map:返回 返回值组成的数组
some