`
xitong
  • 浏览: 6187093 次
文章分类
社区版块
存档分类
最新评论

javascript在不同浏览器中的类型测试实验(跨浏览器编程要注意了!!)

 
阅读更多

为了测试javascript中typeof和Object.prototype.toString的各个native object在不同的浏览器的运行结果,特写了以下的测试代码:

var def;
var gPrimitiveType = {
'string':'str',
'boolean':true,
'function':function(){},
'object':{},
'array':[],
'undefined':def
};

var ul = $('content');
QQVIP.object.each(gPrimitiveType, function(value,key){

var child = document.createElement('LI');
var text = 'typeof ' + key + ' is:' + (typeof value);
child.appendChild(document.createTextNode(text));
ul.appendChild(child);

});

var gProtoType = {
'String.prototype':String.prototype,
'Function.prototype':Function.prototype,
'Object.prototype':Object.prototype,
'Array.prototype':Array.prototype,
'Date.prototype':Date.prototype,
'RegExp.prototype':RegExp.prototype
};

var ul = $('typelist');
QQVIP.object.each(gProtoType, function(value,key){

var child = document.createElement('LI');
var text = 'Object.prototype.toString.call( ' + key + ') is:' + (Object.prototype.toString.call(value) );
child.appendChild(document.createTextNode(text));
ul.appendChild(child);

});

下面是在各个浏览器下的运行结果:

1,IE6下:

typeof 运算结果:

  • typeof string is:string
  • typeof boolean is:boolean
  • typeof function is:function
  • typeof object is:object
  • typeof array is:object
  • typeof undefined is:undefined

Object.prototype.toString.call() 运算结果:

  • Object.prototype.toString.call( String.prototype) is:[object Object]
  • Object.prototype.toString.call( Function.prototype) is:[object Function]
  • Object.prototype.toString.call( Object.prototype) is:[object Object]
  • Object.prototype.toString.call( Array.prototype) is:[object Array]
  • Object.prototype.toString.call( Date.prototype) is:[object Date]
  • Object.prototype.toString.call( RegExp.prototype) is:[object RegExp]

二,Firefox3.0.15

typeof 运算结果:

  • typeof string is:string
  • typeof boolean is:boolean
  • typeof function is:function
  • typeof object is:object
  • typeof array is:object
  • typeof undefined is:undefined

Object.prototype.toString.call() 运算结果:

  • Object.prototype.toString.call( String.prototype) is:[object String]
  • Object.prototype.toString.call( Function.prototype) is:[object Function]
  • Object.prototype.toString.call( Object.prototype) is:[object Object]
  • Object.prototype.toString.call( Array.prototype) is:[object Array]
  • Object.prototype.toString.call( Date.prototype) is:[object Date]
  • Object.prototype.toString.call( RegExp.prototype) is:[object RegExp]

三,Chrome4.0

typeof 运算结果:

  • typeof string is:string
  • typeof boolean is:boolean
  • typeof function is:function
  • typeof object is:object
  • typeof array is:object
  • typeof undefined is:undefined

Object.prototype.toString.call() 运算结果:

  • Object.prototype.toString.call( String.prototype) is:[object String]
  • Object.prototype.toString.call( Function.prototype) is:[object Function]
  • Object.prototype.toString.call( Object.prototype) is:[object Object]
  • Object.prototype.toString.call( Array.prototype) is:[object Array]
  • Object.prototype.toString.call( Date.prototype) is:[object Date]
  • Object.prototype.toString.call( RegExp.prototype) is:[object Object]

四:Opera9.20

typeof 运算结果:
typeof string is:string
typeof boolean is:boolean
typeof function is:function
typeof object is:object
typeof array is:object
typeof undefined is:undefined
Object.prototype.toString.call() 运算结果:
Object.prototype.toString.call( String.prototype) is:[object String]
Object.prototype.toString.call( Function.prototype) is:[object Function]
Object.prototype.toString.call( Object.prototype) is:[object Object]
Object.prototype.toString.call( Array.prototype) is:[object Array]
Object.prototype.toString.call( Date.prototype) is:[object Date]
Object.prototype.toString.call( RegExp.prototype) is:[object RegExp]

五,Safari3.1.2

typeof 运算结果:

  • typeof string is:string
  • typeof boolean is:boolean
  • typeof function is:function
  • typeof object is:object
  • typeof array is:object
  • typeof undefined is:undefined

Object.prototype.toString.call() 运算结果:

  • Object.prototype.toString.call( String.prototype) is:[object String]
  • Object.prototype.toString.call( Function.prototype) is:[object Function]
  • Object.prototype.toString.call( Object.prototype) is:[object Object]
  • Object.prototype.toString.call( Array.prototype) is:[object Array]
  • Object.prototype.toString.call( Date.prototype) is:[object Date]
  • Object.prototype.toString.call( RegExp.prototype) is:[object RegExpPrototype]

综上,标红部分都是跟其他不一样的,需要充分注意。

分享到:
评论

相关推荐

    用于跨浏览器网页编程

    javascript判断跨浏览器网页编程。

    javascript面向对象编程

    面向对象编程的基础知识及其在JavaScript中的运用;数据类型、操作符以及流程控制语句;函数、闭包、对象和原型等概念,以代码重用为目的的继承模式;BOM、DOM、浏览器事件、AJAX和JSON;如何实现JavaScript中缺失的...

    浏览器性能测试工具RoboHornet.zip

    Google称现在有太多的Javascript测试工具,Google自己也有一个Octane工具,但现在的开发编程语言不仅仅是在将静态网页变成动态应用,更需要多多考虑快速浏览的问题,Google希望RoboHornet能给测试带来一些新鲜血液。...

    JavaScript面向对象编程指南

    面向对象编程的基础知识及其在JavaScript中的运用;数据类型、操作符以及流程控制语句;函数、闭包、对象和原型等概念,以代码重用为目的的继承模式;BOM、DOM、浏览器事件、AJAX和JSON;如何实现JavaScript中缺失的...

    JavaScript面向对象编程指南.pdf

    面向对象编程的基础知识及其在JavaScript中的运用;数据类型、操作符以及流程控制语句;函数、闭包、对象和原型等概念,以代码重用为目的的继承模式;BOM、DOM、浏览器事件、AJAX和JSON;如何实现JavaScript中缺失的...

    JavaScript DOM编程艺术(中文第2版)

    第1章 JavaScript简史 1.1 JavaScript的起源 1.2 DOM 1.3 浏览器战争 1.3.1 DHTML 1.3.2 浏览器之间的冲突 1.4 制定标准 1.4.1 浏览器以外的考虑 1.4.2 浏览器战争的结局 1.4.3 崭新的起点 1.5 小结 第2章 ...

    javascript Dom 编程艺术

    本 书在简洁明快地讲述JavaScript和DOM的基本知识之后,通过几个实例演示了专业水准的网页开发技术,透彻阐述了平稳退化等一批至关重要的 JavaScript编程原则和最佳实践,并全面探讨了HTML5以及jQuery等JavaScript库...

    Javascript 编程宝典 pdf Part04

    JavaScript脚本用于创Web浏览器支持的交互式网页,是一咱简单易学的Web编程语言。本书全面介绍了客户端JavaScript脚本编程技术。从简单介绍JavaScript与Web开始,循序渐进地介绍了Web浏览器、基本的编程技巧和编程...

    ecef-v2.0.19d release 水星浏览器最新版本支持库安装包

    新增"水星网页驱动器"类型, 用以支持使用编程方式访问浏览器。 新增"浏览器将要导航"事件。 新增"水星浏览器.取用户数据"方法以支持浏览器绑定自定义数据。 新增"CefQuery"功能用于javascript与浏览器的交互详细见...

    JavaScript_高级编程

    JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个...

    javascript DOM 编程艺术

    从颇具深度的JavaScript语言基础到作用域(链),从引用类型到面向对象编程,从极其灵活的匿名函数到闭包的内部机制,从浏览器对象模型(BOM)、文档对象模型(DOM)到基于事件的Web脚本设计,从XML(E4X)到Ajax及JSON,从...

    javascript浏览器对象编程

    document对象常用属性和方法 window对象的常用属性和方法 history对象的常用属性和方法 location对象的常用属性和方法

    JavaScript的并行编程扩展RiverTrail.zip

    目前River Trail还是作为一个Firefox浏览器扩展存在的,尚不清楚是否会引起其他厂家的注意并引入到各自的Javascript引擎中,例如V8。另外, 在原文的评论部分,Intel还解释了River Trail和Web Workers的不同,并欢迎...

    JavaScript面向对象编程指南 英文版

    面向对象编程的基础知识及其在JavaScript中的运用;数据类型、操作符以及流程控制语句;函数、闭包、对象和原型等概念,以代码重用为目的的继承模式;BOM、DOM、浏览器事件、AJAX和JSON;如何实现JavaScript中缺失的...

Global site tag (gtag.js) - Google Analytics