JavaScript之隐式类型转换

原创 年树先生 随笔 前端技术 6302阅读 27 天前 举报

布尔操作符(!、&&、||)

  • 当使用 条件判断语句(if...else) 以及 布尔操作符(!、&&、||) 时,会调用Boolean()进行隐式类型转换
  • 转换为false的有:0, null, undefined, NaN, '', false,其余都为true([], {}为true)

乘/除法操作符(*、/)

  • 若有一个操作数为NaN,则结果为NaN
  • 若其中一个操作数不为数字,则调用Number()将其转换为数值

加法操作符(+)

  • 若有一个操作数为NaN,结果为NaN
  • 若有一个操作数为字符串,则将另一个数转换为字符串然后拼接
  • 若有一个操作数为对象,则调用对象的toString方法再执行上一步

减法操作符(-)

  • 若一个操作数为字符串、null、undefined、布尔值,就调用Number()将其转换为数值再运算
  • 若一个操作数为对象则调用该对象valueOf(),没有valueOf()则调用toString()

关系操作符(>、<、>=、<=)

  • 与NaN比较都会返回false
  • 若两个操作数都为字符串,则比较字符串的编码值
  • 若有一个操作数为数值,则对另一个操作数用Number()转换
  • 若有一个操作数为对象,则调用该对象valueOf(),没有valueOf()则调用toString()

相等操作符(==、!=)

  • 字符串、布尔类型和数值比较,现将前者用Number()转换为数值
  • 若一个操作数是对象另一个不是,则调用该对象valueOf(),没有valueOf()则调用toString()
  • 若两个操作数都是对象,则比较它们是不是同一个对象(地址是否相同)
  • null和undefined是相等的
  • null和undefined不会转换成任何值
  • 任何数都不等于NaN,包括NaN自己

全等操作符(===、!==)

全等操作符不会转换操作数

结语

感谢您的观看,如有不足之处,欢迎批评指正。

本次给大家推荐一个免费的学习群,里面概括移动应用网站开发,css,html,webpack,vue node angular以及面试资源等。
对web开发技术感兴趣的同学,欢迎加入Q群:864305860,不管你是小白还是大牛我都欢迎,还有大牛整理的一套高效率学习路线和教程与您免费分享,同时每天更新视频资料。
最后,祝大家早日学有所成,拿到满意offer,快速升职加薪,走上人生巅峰。

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复