js类型转化机制

js类型转化机制

1.js数据类型

js六种数据类型:string/undefined/null/number/object/symbol
常见的类型转换有:
强制转换(显示转换)
自动转换(隐式转换)

2.显示转化

//Number()parseInt()String()Boolean()
//Number()将任意类型的值转化为数值
console.log(Number('1'),Number(null),Number(undefined),Number(3),Number(NaN),Number("q"),Number(true),Number(false),Number({a:'1'})) //1,0,NaN,3,NaN,NaN,1,0,NaN
//parseInt函数逐个解析字符,遇到不能转换的字符就停下来
console.log(parseInt('123asr23'))//123
//String()可以将任意类型的值转化成字符串
console.log(String('123'),String(undefined),String(null),String(NaN),String(123),String({a:"1"}))// 123,undefined,null,NaN,123,[object Object]
//Boolean()可以将任意类型的值转为布尔值
console.log(Boolean(true),Boolean(false),Boolean("123"),Boolean({}),Boolean(undefined),Boolean(null),Boolean(''),Boolean([]),Boolean(NaN),Boolean(0))// true,false,true,true,false,false,false,true,false,false

3.隐式转换

//我们这里可以归纳为两种情况发生隐式转换的场景:
//比较运算(==、!=、>、<)、if、while需要布尔值地方
//算术运算(+、-、*、/、%)
在需要布尔值的地方,就会将非布尔值的参数自动转为布尔值,系统内部会调用Boolean函数
可以得出个小结:
undefined
null
false
+0
-0
NaN
""
//除了上面几种会被转化成false,其他都换被转化成true

//自动转换成字符串遇到预期为字符串的地方,就会将非字符串的值自动转为字符具体规则是:先将复合类型的值转为原始类型的值,再将原始类型的值转为字符串常发生在+运算中,一旦存在字符串,则会进行字符串拼接操作
console.log('2'+ 1,'2'+{},'2'+[],'2'+undefined,'2'+null,'2'+function(){},'2'+true,'2'+false)//21,2[objectObject],2,2undefined,2null,2function(){},2true,2false

//除了+有可能把运算子转为字符串,其他运算符都会把运算子自动转成数值
console.log('5' - '2' ,'5' * '2',true - 1 ,false - 1 ,'1' - 1,'5' * [] ,false / '5' ,'abc' - 1  ,null + 1 ,undefined + 1 )// 3,10,0,-1,0,0,0,NaN,1,NaN
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值