JS中 0=="" ?

大狗狗 2018-04-14 07:17:27
alert(0 == "" ? "Y":"N");

0居然等于"",这是什么鬼??一个是数字,一个是空字符串(那也是字符串啊)。JS是弱类型,弱到这种程度了?
...全文
1122 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
X_BL1314 2018-04-24
  • 打赏
  • 举报
回复
否定楼上评论,0与字符串相比较的时候,使用Number()方法将字符串变成数字,而不是调用Boolean()方法转布尔,空字符串转数字等于0,所以0==0为true。
大狗狗 2018-04-18
  • 打赏
  • 举报
回复
引用 1 楼 jslang 的回复:
0 与 "" 是不同类型,要转换成同一类型才好比较。 "" 没办法转换为数值,只能转换为布尔值 false。 变成 0 与 false 的比较。还是不同类型,还要把 0 也转换为布尔值 false 最后变成 false == false 的比较,当然是成立了
兄台的回复可谓经典,非常感谢!
hookee 2018-04-14
  • 打赏
  • 举报
回复
alert(0 === "" ? "Y":"N");
天际的海浪 2018-04-14
  • 打赏
  • 举报
回复
0 与 "" 是不同类型,要转换成同一类型才好比较。 "" 没办法转换为数值,只能转换为布尔值 false。 变成 0 与 false 的比较。还是不同类型,还要把 0 也转换为布尔值 false 最后变成 false == false 的比较,当然是成立了

61,115

社区成员

发帖
与我相关
我的任务
社区描述
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
社区管理员
  • HTML(CSS)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧