全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 253|回复: 6

[疑问] 这个是js的巨**UG?

[复制链接]
发表于 2025-1-6 09:57:18 | 显示全部楼层 |阅读模式
alert ('a' < 0 ? 'yes' : 'no')

alert ('a' == 0 ? 'yes' : 'no')

alert ('a' > 0 ? 'yes' : 'no')


上面三个全部提示 no

第2个不应该是yes吗
发表于 2025-1-6 10:02:24 | 显示全部楼层
本帖最后由 职业菜鸟 于 2025-1-6 10:04 编辑

'a' = 0   类型都不一样 怎么能是yes 呢? ??????

alert (0== 0 ? 'yes' : 'no') 才是 yes
 楼主| 发表于 2025-1-6 10:09:40 | 显示全部楼层
职业菜鸟 发表于 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:36:31 | 显示全部楼层
本帖最后由 职业菜鸟 于 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:54:26 | 显示全部楼层
职业菜鸟 发表于 2025-1-6 10:36
特地试了试python   print 'a' == 0;   False

只有PHP是True每个语言底层处理逻辑不同吧。 但是不应该返 ...

返回False确实是对的,但是在java里好像是可以比较的,不过得是char类型。用char a='a'
用a直接去和97比较是相等的。
发表于 2025-1-6 10:59:58 | 显示全部楼层
怎么可能是0
发表于 2025-1-6 11:03:30 来自手机 | 显示全部楼层
这么大的bug被你发现了,赶紧向w3c提报
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-1-15 18:46 , Processed in 0.058628 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表