首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

javascript操作符一——“==”,“!=”,“===”, “!==”

2012-10-16 
javascript操作符1——“”,“!”,“”, “!”????? 今天在写js时,判断一个节点的值(document.getElementByI

javascript操作符1——“==”,“!=”,“===”, “!==”

????? 今天在写js时,判断一个节点的值(document.getElementById("id").value == 5)是否等于一个数值时,出现了alert(5 == "5");打印出true的情况。感觉比较奇怪,于是查阅了JavaScript高级程序设计,终于找到了原因:

?

????? 比较两个变量是否相等是编程中非常重要的一个基本操作。

????? 最早的ECMAScript中的相等操作和不等操作会在执行比较之前,先将对象转换成相似的类型。后来,有人提出了这种转换到底是否合理的质疑。最后,ECMAScript的解决方案就是提供两组操作符:

????? 1. 相等和不相等 —— 先转换再比较

??????2. 全等和不全等 —— 仅比较而不转换。

?

????? 1. 相等(==)和不相等(!=)

????????? 这两个操作符都会先转换操作数(通常称为强制转换),然后再比较它们的相等性

????????? 在转换不同的数据类型时,相等和不相等操作符遵循下列基本规则:

??????????a. 如果有一个操作数是布尔值,则在比较相等性之前先将其转换为数值 ——?false转换为0,而true转换为1。

??????????b. 如果有一个操作数是字符串,另一个操作数是数值,在比较相等性之前先将字符串转换为数值。(今天碰的就是)??

??????????c.?如果一个操作数是对象,另一个操作数不是,则调用对象的valueOf()方法,用得到的原始值按照前面的规则进行比较。

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

????? 2. 全等(===)和全不等(!==)

????????? 除了在比较之前不转换操作数之外,全等和全不等操作符与相等和不相等操作符没有什么区别。

??????????

??????

???????JavaScript高级程序设计中的原话:

?????? 由于相等和不相等操作符存在类型转换问题,而为了保持代码中数据类型的完整性,我们推荐使用全等和不全等操作符。

?

1 楼 tangxuan1988 2011-11-26   顶一个,AI友~

热点排行
Bad Request.