这个是js的巨**UG?
alert ('a'0 ? 'yes' : 'no')上面三个全部提示 no
第2个不应该是yes吗 本帖最后由 职业菜鸟 于 2025-1-6 10:04 编辑
'a' = 0 类型都不一样 怎么能是yes 呢? ??????
alert (0== 0 ? 'yes' : 'no') 才是 yes
职业菜鸟 发表于 2025-1-6 10:02
'a' = 0 类型都不一样 怎么能是yes 呢? ??????
alert (0== 0 ? 'yes' : 'no') 才是 yes ...
js , patyon, php 等等... 这些都是若类型语言, 它们的规则就是与数字进行比较时会先把自己转成数字再比较,
字符a转数字在任何代码界都是等于数字0
alert ('a' == 0 ? 'yes' : 'no') 应该返回yes才对 (pathon和php都是返回yes的)
alert ('a' === 0 ? 'yes' : 'no')全等判断才应该返回 no 本帖最后由 职业菜鸟 于 2025-1-6 10:44 编辑
wawos 发表于 2025-1-6 10:09
js , patyon, php 等等... 这些都是若类型语言, 它们的规则就是与数字进行比较时会先把自己转成数字再比 ...
特地试了试python print 'a' == 0; False
只有PHP是True每个语言底层处理逻辑不同吧。 但是不应该返回 False 才是对的嘛?
另外 字符a转数字在任何代码界应该都会报错吧? 试了js和python ,js返回NaN python直接报错。
职业菜鸟 发表于 2025-1-6 10:36
特地试了试python print 'a' == 0; False
只有PHP是True每个语言底层处理逻辑不同吧。 但是不应该返 ...
返回False确实是对的,但是在java里好像是可以比较的,不过得是char类型。用char a='a'
用a直接去和97比较是相等的。 怎么可能是0 这么大的bug被你发现了,赶紧向w3c提报
页:
[1]