17
|
Diodeus - James MacFarlane · 技术社区 · 16 年前 |
![]() |
1
18
根据Mozilla文档 Javascript Comparison Operators
实际发生的是字符串被转换成数字。 例如:
然后试试这个:
事情就是这样发生的
|
![]() |
2
10
当javascript执行隐式类型转换时,空字符串文字将与0整数匹配。进行这样的比较,您将得到预期的结果:
|
![]() |
3
4
ECMA-262,第3版,11.9.3,关于
空字符串
|
![]() |
4
3
这只是进入到JavaScript折衷方案中的一个真正可怕的漫画。0都是未初始化的值(等于布尔值false),因此等于。 为了保护自己不受这种奇怪的错误的影响,最好始终使用==运算符。 |
![]() |
5
2
与PHP一样,JavaScript也是弱类型*。因此,当您将0与“”进行比较时,JS引擎会将它们转换为类似的数据类型。由于0和“”都等于布尔值(false),“false==false”为true。 *弱类型语言不要求变量是任何特定的数据类型,因此可以将一个变量设置为字符串,将其更改为int、float和back to string,而不需要处理器抛出错误。 |
![]() |
6
2
在许多语言中,空字符串可以强制为false。 小心与==进行比较,而不是==:
==不可传递。 |
![]() |
code-geek · Jquery根据单选按钮选择隐藏或显示文本字段 3 月前 |
![]() |
Alex · 在轻量级中同时解构和不解构变量 3 月前 |
![]() |
Ângelo Rigo · ReactJS映射:如何迭代[关闭] 3 月前 |
![]() |
bairog · 从按属性筛选的对象数组字典中创建值数组 3 月前 |
![]() |
lokiuucx · JS对象属性返回未定义,尽管对象属性应该有值 4 月前 |