JS隐式转换

10 篇文章 11 订阅
6 篇文章 1 订阅

一、隐式转换介绍

在JS中运算符运算时,如果两边数据不统一,CPU无法计算时,编译器自动将运算符两边的数据做一个数据类型转换,转换成一样的数据进行运算,这种编译器自动转换的方式被称为隐式转换

二、转换规则

转换成string类型: + (字符串连接符)

转换成number类型:++、--、+、-、*、/、%、==、===、!==、<=、>=、<、>(关系运算符)

转换成Boolean类型:!(逻辑运算符)

三、常见转换方法

String()、toString()、Number()、valueOf()、

四、常见转换

(一)+

number + number为数字相加

string + string为字符串拼接

string + number:number类型转string,然后字符串拼接

注意:

  • undefined转化为number是NaN
  • 任何number与NaN相加都为NaN
  • 若string类型的带有数字字符的(如“1a”等),number也会转化为NaN

(二)-

  • 字符串减数字,字符串转化成数字后再运算
  • 字符串不单纯,带有数字就会转化称为NaN
  • 数字减字符串,字符串转化称为数字再运算

(三)*  /

和减一样

(四)==   >   <

  • undefined  ==  null
  • undefined  !==  null
  • NaN不等于NaN(NaN与任何值都不相等)
  • null == null(相等,没有意义)
  • undefined == undefined
  • undefined === undefined
  • 字符串和数字比较,字符串转数字
  • 字符串和字符串比较的是Unicode编码
  • 数字和布尔比较,布尔转数字
  • 字符串和布尔比较,两者转数字
  • 对象和字符串比较,对象转字符串,然后比较
  • 对象和布尔比较,对象先转字符串,然后转数字,布尔直接转换成数字,然后比较
  • 对象和数字比较,对象先转字符串再转数字,然后和数字比较
  • 对象和对象不能比较,比较的是引用地址

(五)常见转换的坑

  1. 空数组的toString()得到空字符串,而空对象的toString()得到字符串 ` [ object Object ] `
  2. *0、-0、NaN、undefined、null、*(空字符串)、false、document.all()转换为布尔类型得到的是false
  3. 除以上八中其余都为true
  4. ![ ] == false(空数组转布尔得到true,反转得到false)
  5. +0 === -0
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值