当前位置:  开发笔记 > 编程语言 > 正文

什么是Javascripts的语义如果声明

如何解决《什么是Javascripts的语义如果声明》经验,为你挑选了1个好方法。

我一直认为if语句基本上比较了它的类似的论点== true.然而,Firebug中的以下实验证实了我最担心的事情 - 在写了15年的Javascript之后我仍然没有线索WTF正在进行:

>>> " " == true
false
>>> if(" ") console.log("wtf")
wtf

我的世界观在这里一片混乱.我可以运行一些实验来了解更多信息,但即使这样,我也会因为害怕浏览器怪癖而失眠.这是某个规格吗?它是否一致的跨浏览器?我会掌握javascript吗?



1> kloffy..:

"如果两个操作数的类型不同,则JavaScript转换操作数然后应用严格比较.如果操作数是数字或布尔值,操作数将转换为数字;如果任一操作数是字符串,则另一个转换为数字到一个字符串."

https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Operators/Comparison_Operators

所以第一个做:

Number(" ")==Number(true)

而第二个评估如下:

if(Boolean(" ")==true) console.log("wtf")


我的JS忍者朋友刚刚给我看了这个规范:http://bclary.com/2004/11/07/#a-11.9.3
推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有