1 + '1' -2 的结果

YOLO大师
领域专家: 前端开发技术领域
2021-11-02 09:00:52

1 + '1' -2的结果:可以在评论区做答!!!

...全文
141 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
0人已提交
完成率0%
暂无数据
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jimson_zhu 2021-11-03
精选
  • 打赏
  • 举报
回复 1

这个涉及js的隐式转换。
前面部分:1+'1',会隐式转换成字符串,'11';
后面部分:‘11’会隐式转换成整型11,然后进行计算,最终结果是:9。

涉及知识点:
1)减、乘、除
非Number类型运用数学运算符(- * /)时,会先将非Number类型转换为Number类型。

1 - true // 0, 首先把 true 转换为数字 1, 然后执行 1 - 1
1 - null // 1,  首先把 null 转换为数字 0, 然后执行 1 - 0
1 * undefined //  NaN, undefined 转换为数字是 NaN
2 * ['5'] //  10, ['5']首先会变成 '5', 然后再变成数字 5

上面例子中的 ['5']的转换,涉及到拆箱操作,将来有机会再出一篇文章说明。

2)加法的特殊性
为什么加法要区别对待?
因为JS里“+”还可以用来拼接字符串。

谨记以下3条:
当一侧为String类型,被识别为字符串拼接,并会优先将另一侧转换为字符串类型。
当一侧为Number类型,另一侧为原始类型,则将原始类型转换为Number类型。
当一侧为Number类型,另一侧为引用类型,将引用类型和Number类型转换成字符串后拼接。

具体可以跳转阅读: https://chinese.freecodecamp.org/news/javascript-implicit-type-conversion/

Hyun_waster 2021-11-03
  • 打赏
  • 举报
回复

先是 1 跟 '1' 进行字符串拼接 变成 '11'
然后'11'再跟9进行运算,运算的时候发生隐式转换,将 string 类型的'11'转换成 number 类型的 11
结果是 9

故渊~池鱼 2021-11-02
  • 打赏
  • 举报
回复 1

前面是转成了字符串
后面在计算时转换为整型

haojiahuode 一元天 2021-11-02
  • 打赏
  • 举报
回复 1

9?

YOLO大师 2021-11-02
  • 举报
回复
@haojiahuode 对咯,可以简单说说是为啥吗
haojiahuode 一元天 2021-11-02
  • 举报
回复
@YOLO大师 因为'1'字符串 就是10 我就知道这个 还有就是我用代码验证了一下
YOLO大师 2021-11-02
  • 举报
回复
@haojiahuode 这个和JS 类型转换有关系的哟,这一块还是很重要的知识点!
2条回复

9,344

社区成员

发帖
与我相关
我的任务
社区描述
YOLO(You Only Look Once)是一种流行的物体检测和图像分割模型,由华盛顿大学的约瑟夫-雷德蒙(Joseph Redmon)和阿里-法哈迪(Ali Farhadi)开发。YOLO 于
YOLO目标检测 个人社区 上海·浦东新区
社区管理员
  • YOLO大师
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

【社区规则】学习优先,其他靠边!

【多多发帖】本社区发帖,链接到自己的博文,官方会多给曝光,同时粉丝多涨涨!!!

【发帖内容】 发帖可以是求助,也可以是文章,

                      当然也可以是链接你自己博文的帖子,总是对你有益的都可以。

                      (违反官方规定的不可以)

有问题,可以私聊我,同时头部和侧边栏也有我的联系方式!!!

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