主机论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 148|回复: 6

这个是js的巨**UG?

[复制链接]

218

主题

372

回帖

1642

积分

金牌会员

Rank: 6Rank: 6

积分
1642
发表于 2025-1-6 09:57:18 | 显示全部楼层 |阅读模式
alert ('a' < 0 ? 'yes' : 'no')

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

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


上面三个全部提示 no

第2个不应该是yes吗
回复

使用道具 举报

112

主题

4988

回帖

1万

积分

论坛元老

Rank: 8Rank: 8

积分
11794
发表于 2025-1-6 10:02:24 | 显示全部楼层
本帖最后由 职业菜鸟 于 2025-1-6 10:04 编辑

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

alert (0== 0 ? 'yes' : 'no') 才是 yes
回复

使用道具 举报

218

主题

372

回帖

1642

积分

金牌会员

Rank: 6Rank: 6

积分
1642
 楼主| 发表于 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
回复

使用道具 举报

112

主题

4988

回帖

1万

积分

论坛元老

Rank: 8Rank: 8

积分
11794
发表于 2025-1-6 10:02:00 | 显示全部楼层
本帖最后由 职业菜鸟 于 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直接报错。
回复

使用道具 举报

5

主题

69

回帖

243

积分

中级会员

Rank: 3Rank: 3

积分
243
发表于 2025-1-6 10:36:31 | 显示全部楼层
职业菜鸟 发表于 2025-1-6 10:36
特地试了试python   print 'a' == 0;   False

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

返回False确实是对的,但是在java里好像是可以比较的,不过得是char类型。用char a='a'
用a直接去和97比较是相等的。
回复

使用道具 举报

13

主题

510

回帖

1401

积分

金牌会员

Rank: 6Rank: 6

积分
1401
发表于 2025-1-6 10:09:00 | 显示全部楼层
怎么可能是0
回复

使用道具 举报

35

主题

174

回帖

679

积分

高级会员

Rank: 4

积分
679
发表于 2025-1-6 10:54:26 | 显示全部楼层
这么大的bug被你发现了,赶紧向w3c提报
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|主机论坛

GMT+8, 2025-3-13 05:20 , Processed in 0.079197 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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