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);
分享到:
相关推荐
在Safari 5及更早版本,以及Chrome 7之前,`typeof`对正则表达式对象的判断结果是`'function'`,这与现代浏览器中的行为不一致。现代浏览器中,正则表达式会被识别为`'object'`。这一差异可能导致在不同浏览器间的...
由于不同浏览器间对同一属性的命名可能存在差异,或是在同一浏览器的不同版本中对属性的实现有所不同,因此需要一种策略来平滑地处理这种不一致性。本文探讨了在JavaScript中实现跨浏览器属性判断的方法。 首先,一...
需要注意的是,此方法在不同浏览器中的实现略有不同,因此在实际应用时,代码中通常会使用或运算符 `||` 检测浏览器支持的前缀,并执行相应的全屏方法。 例如,`document.documentElement.requestFullScreen()` ...
`typeof`是一个一元运算符,其主要功能是确定变量的数据类型。它会返回一个字符串,表明变量或表达式的类型。`typeof`支持以下几种类型: 1. `number`:当变量为数值时。 2. `boolean`:变量为布尔值时。 3. `...
7. **BOM(浏览器对象模型)和DOM(文档对象模型)**:JavaScript可以通过BOM操作浏览器对象,如窗口、导航、历史记录等,通过DOM操作HTML元素,实现对网页内容的动态修改。 8. **JavaScript与HTML结合**:...
在互联网初期的“浏览器大战”中,由于各浏览器厂商的实现差异,导致出现了多种JavaScript版本,比如微软的Jscript。这就使得JavaScript在不同浏览器间存在兼容性问题,开发者需要额外的工作来确保代码在所有浏览器...
此外,还有其他特殊运算符,比如delete用于删除对象的属性,instanceof用于检测构造函数的prototype属性是否出现在某个实例对象的原型链上,new用于创建一个实例对象,typeof用于获取变量或表达式的类型,void用于...
需要注意的是,由于不同浏览器的实现差异,可能导致JS代码在某些浏览器上运行不正常。解决这个问题的一个方法是使用跨浏览器的函数和库,或者进行充分的浏览器兼容性测试。 学习JS,可以参考在线手册,如w3school的...
总结来说,为了确保在所有浏览器中都能够准确地获取窗口的大小和位置,我们必须考虑浏览器间的差异,并且编写能够兼容这些差异的代码。通过首先尝试访问现代浏览器标准的属性,然后根据浏览器是否支持这些属性来选择...
- **浏览器差异**:由于不同浏览器之间存在差异,相同的JavaScript脚本可能在某些浏览器中无法正常工作。 - **解决方案**:为了确保代码兼容性,开发者需要在多种主流浏览器中进行测试。 - **推荐做法**:尽量使用跨...
`typeof`运算符可以返回表达式的数据类型。 在控制流程方面,JavaScript的条件判断(if语句)需要注意赋值与比较操作的混淆,switch语句可以处理字符串,循环结构(while、do…while、for)则与Java类似,但在弱...
- **数据类型**:理解基本类型(primitive types)与引用类型(reference types)的区别,以及typeof运算符的使用。 - **面向对象**:熟悉构造函数、原型链、类(class)等面向对象编程概念。 - **闭包**:掌握闭包的...
- **typeof运算符**:用于获取变量的数据类型。 - **delete运算符**:用于删除对象的属性。 - **instanceof运算符**:用于检测构造函数的原型对象是否出现在某个实例的原型链上。 #### 4. with 语句 with语句提供...
但是,需要注意的是,不同浏览器对HTMLElement的类型可能有不同的实现,如在Chrome和Opera中HTMLElement的类型可能被实现为函数,这样就无法使用instanceof运算符来判断了。 3. **综合属性和类型检查**:基于上述...
2. 基本数据类型和引用数据类型的差异: - 参数传递:基本数据类型传递的是值的副本,修改副本不会影响原值;引用数据类型传递的是对象引用,修改会影响原对象。 - 存储位置:基本数据类型存储在栈中,引用数据...
JScript 是 Microsoft 对 ECMA-262 规范(JavaScript 的标准化)的实现,它在 Internet Explorer 浏览器中作为默认的脚本引擎使用。 JScript 的关键特性包括: 1. **类型系统**:JScript 支持弱类型系统,这意味着...
3. **基本数据类型与引用数据类型的差异**: - 基本数据类型在函数参数传递时传递的是值的副本,改变副本不会影响原始值。 - 引用数据类型传递的是值的引用,因此函数内部的修改会影响到原始值。 - 存储位置上,...
JavaScript Perfection Kill 测试是一个挑战开发者JavaScript技能的在线测验,涵盖了语言的多个方面,包括作用域、类型转换、函数、对象以及浏览器差异等。在这个测试中,出现了一些有趣的问题,其中部分问题在不同...