`
zhouyrt
  • 浏览: 1126298 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

    博客分类:
  • BUG
 
阅读更多

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);

 

 

 

 

分享到:
评论
9 楼 wmingjian 2011-02-06  
漏掉两个字,修正如下:
一句话,JS中对象分内部和外部两种,我从来不像讨论JS内部对象的类型一样,来严格的讨论JS外部宿主对象的类型系统的。对JS这种弱类型语言来说,外部对象可以通过引擎实现语言的类型系统来混淆JS中的任何类型。
8 楼 wmingjian 2011-02-06  
一句话,JS中对象分内部和外部两种,我从来不像讨论JS内部对象的类型一样,来严格的讨论JS外部宿主对象的类型系统的。对JS这种弱类型语言来说,外部对象可以通过实现语言的类型系统来混淆JS中的任何类型。
7 楼 zhaodidong 2011-01-17  
fengchong719 写道
ie6-8 把 function 分析为 object 类型.
var fun = new function(){}
window.onload = function(){
alert(typeof fun);
alert(typeof window.alert)
alert(typeof window);
}
以上弹出的值都为object,也就是说,ie6-8还没有把function当做一个类型来应用,只是我们可以这样用。



new出来的肯定是对象 哈哈


alert 是ie 错了

window 就是对象啊 new Window()
6 楼 kyfxbl 2011-01-17  
日,ie sucks
5 楼 fengchong719 2010-07-29  
ie6-8 把 function 分析为 object 类型.
var fun = new function(){}
window.onload = function(){
alert(typeof fun);
alert(typeof window.alert)
alert(typeof window);
}
以上弹出的值都为object,也就是说,ie6-8还没有把function当做一个类型来应用,只是我们可以这样用。
4 楼 aws 2010-07-28  
说来说起,还是当年微软自恃垄断老大,没有尽力的去推IE成为标准
否则也不会有现在几个什么标准,可笑
3 楼 西门吹牛 2010-07-28  
ie的东西就是得够个性
2 楼 robyjeffding 2010-07-27  
试了一下FireFox,全部都返回Function,至于IE6返回的Object就看不懂了
1 楼 congdepeng 2010-07-23  
也许IE6/7/8觉得 function也是 object,所以马马虎虎了

相关推荐

    浅析JavaScript中的typeof运算符

    主要是对JavaScript中的typeof运算符进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助

    JavaScript中instanceof与typeof运算符的用法及区别详细解析

    typeof 运算符返回一个用来表示表达式的数据类型的字符串。 typeof expression ; expression 参数是需要查找类型信息的任意表达式。 说明typeof 是一个一元运算符,放在一个运算数之前。 typeof 运算符把类型信息...

    instanceof和typeof运算符的区别详解

    一.instanceof运算符:此运算符可以判断一个变量是否是某个对象(类)的实例,返回值是布尔类型的。...二.typeof运算符:此运算符可以返回一个字符串,用语说明元算数的类型,它的返回值有如下可能: 代码如下:n

    JavaScript中使用typeof运算符需要注意的几个坑

    主要介绍了JavaScript中使用typeof运算符需要注意的几个坑,本文总结了4个使用typeof运算符要注意的问题,需要的朋友可以参考下

    javascript typeof的用法与typeof运算符介绍[详细]第1/2页

    下面是对于typeof运算符的详细介绍跟typeof的一些用法,分析,学习typeof的朋友,看完了,这篇应该能有所收获。

    type-detect:改进了node.js和浏览器的typeof检测

    它还标准化了一些对象名称,以实现浏览器之间的一致性。 为什么? typeof运算符将仅指定原始值; 其他所有内容都是"object" (包括null ,数组,正则表达式等)。 许多开发人员使用Object.prototype.toString() -...

    深入剖析JavaScript instanceof 运算符

    在 JavaScript 中,判断一个变量的类型尝尝会用 typeof 运算符,在使用 typeof 运算符时采用引用类型存储值会出现一个问题,无论引用的是什么类型的对象,它都返回 “object”。ECMAScript 引入了另一个 Java 运算符...

    实例讲解JavaScript中instanceof运算符的用法

    在 JavaScript 中,判断一个变量的类型尝尝会用 typeof 运算符,在使用 typeof 运算符时采用引用类型存储值会出现一个问题,无论引用的是什么类型的对象,它都返回 “object”。ECMAScript 引入了另一个 Java 运算符...

    JavaScript基础之运算符

    JS运算符算术运算符比较运算符关系运算符位运算符赋值运算符条件运算符typeof 运算符对象运算符 JavaScript支持一下几种运算符: 算术运算符 比较运算符 关系运算符 赋值运算符 条件运算符 算术运算符 运算符 ...

    C#中常用的运算符总结

    在C#中常用到的运算符有条件运算符,is运算符,as运算符,typeof 运算符等等,接下来在文章中将为大家具体介绍各个运算符的使用方法 条件运算符 条件运算符用( ?: )来表示 condition ? X:Y 上述的语句表示的是如果...

    使用typeof方法判断undefined类型

    使用typeof方法,typeof 返回的是字符串,其中就有一个是undefined,下面是示例代码,大家可以看看

    js 面试题1 typeof-变量计算-原型

    js面试题知识 包含typeof 运算符相关的知识 变量计算的相关的坑 手写一个深拷贝 原型和原型链的概念和详细讲解 手写一个jquery

    实验三实习报告1

    2.运算符包括:算术运算符,赋值运算符,关系运算符,逻辑运算符,移位运算符,其他特殊运算符(is运算符,new运算符,Typeof运算符),3.运算符之间的优先

    JavaScript用构造函数如何获取变量的类型名

    看到题目的第一眼,有些同学可能会想到 typeof 运算符,在JavaScript语言中,给出了使用 typeof 运算符来获取基本的类型名.(注意不是基本类型) 这是 typeof 的全部用法 01-typeof.htm console.log('typeof of 10 ~~~~...

    JS中typeof与instanceof的区别

    JS中typeof与instanceof的区别

Global site tag (gtag.js) - Google Analytics