前端面试宝典 每日一题(15)关于JS类型转换的一些思考

🧑🏻‍写在前面的话:
这个系列文章可能开始,有人会觉得很low,我是打算从H5先开始整理,最后到常见的前端框架、以及一些前端常见的算法、leetcode的一些算法解析,感兴趣的小伙伴可以持续关注,每天分享一个前端知识点,希望大家一起进步。

为什么出现类型转换,主要原因是js在定义变量的时候没有类型声明,所以任意的两个字面量都可以进行加减乘除,在进行这些操作的时候就会牵扯出类型转,当然类型转换在我们日常的开发中也是肯定会遇到的。

1.在JS中加(+)有特殊的含义(可以进行字符串拼接),所以我们先从+说起:

  1. 当一侧为String类型,被识别为字符串拼接,并会优先将另一侧转换为字符串类型。

  2. 当一侧为Number类型,另一侧为原始类型,则将原始类型转换为Number类型。

  3. 当一侧为Number类型,另一侧为引用类型,将引用类型和Number类型转换成字符串后拼接。

    这三条规则优先级从高到低

在这里插入图片描述

2.我们在对各种非Number类型运用数学运算符(- * /)时,会先将非Number类型转换为Number类型

  • 1 - true // 0, 首先把 true 转换为数字 1, 然后执行 1 - 1
  • 1 - null // 1, 首先把 null 转换为数字 0, 然后执行 1 - 0
  • 1 * undefined // NaN, undefined 转换为数字是 NaN

在这里插入图片描述

3.逻辑语句中的类型转换

1.单个变量
只有null undefined ‘’ NaN 0 false 是false 其他情况都是 true
2.使用 ==

  • NaN和其他任何类型比较永远返回false(包括和他自己)。
  • Boolean 和其他任何类型比较,Boolean 首先被转换为 Number 类型
  • String和Number比较,先将String转换为Number类型。
  • null == undefined 比较结果是true,除此之外,null、undefined和其他任何结果的比较值都为false。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值