各浏览器对typeof运算符的实现差异

本文探讨了不同浏览器在处理特定JavaScript对象类型时的行为差异。重点分析了IE6/7/8对于BOM对象方法的typeof返回值与其他现代浏览器的不同之处,以及Safari/Chrome在处理正则表达式对象和Safari处理NodeList时的独特表现。

1,IE6/7/8中typeof运算符对BOM对象如window,document,location,history等对象的方法错误的返回“object”,标准浏览器都返回“function”。

 

alert(typeof window.alert);
alert(typeof document.write);
alert(typeof document.getElementById);
alert(typeof document.getElementsByTagName);
alert(typeof location.reload);
alert(typeof history.go);

 

 

2,Safari/Chrome对正则对象错误的返回function,其它浏览器返回object

var bb = new RegExp('bb');
alert(typeof /aa/);// --> function
alert(typeof bb);// --> function
 

 

3,Safari对NodeList返回function,其它浏览器返回object

var nodes1 = document.body.children
    nodes2 = document.body.childNodes;
alert(typeof nodes1);
alert(typeof nodes2);

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值