JavaScript教程:实例解析运算符
符上。基本可以确定,==一定不是把数字转换为布尔值再进行比较。
看看ECMA-262(第80页)中怎么说的: 6.If Type(x) is Boolean, return the result of the comparison ToNumber(x) == y. 也就是说,布尔值会被首先转换为数字,然后进行比较。true的数字值为1,false为0。所以2和-1都不能和true相等。 进一步看下面这个例子: <SCRIPT LANGUAGE="JavaScript"> 运行代码框 按照前面的思路,true会被转换为1,所以三个语句都会返回false。运行一下,发现的确如此。 下面将if(aVar==true)改为if(aVar)。 运行代码框 这时的运行结果是true,true,false。因为Boolean("undefined")、Boolean("false")、Boolean("")的结果为true,true,false。非空字符串转换为布尔值true。 最后还有一个例子,解释当==两边为字符串和数字时的比较规律。 运行代码框 发现没,这个"0 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |