js数据类型转换

一、强制转换
强制转换主要指使用Number()、String()、Boolean()三个函数,分别转化为数字、字符串、布尔值。

Number()
使用Number函数,可以将任何类型转化为数值。转化规则如下:
1.数值,转换后还是原来的值
Number(123) // 123
2.字符串
Number(‘123’) // 123 字符串如果可以被解析为数值,则转为对应的数值
Number(‘123abc’) // NaN 字符串如果不可以解析为数值,则返回NaN
Number(’’) // 0 空字符串转化为0
3.布尔值, true转化为1,false转化为0
Number(true) // 1
Number(false) // 0
4.undefined或null
Number(undefined) //NaN undefined转化为NaN
Number(null) // null转化为0
5.对象
Number({a:1}) // NaN 参数是对象时,将返回NaN,除非是单个数值的数组
Number([1]) // 1

String()
使用String函数,可以将任何类型转化为字符串。转化规则如下:
1.数值,转为相应的字符串
String(123) // ‘123’
2.字符串,转换后还是原来的值
String(‘abc’) // ‘abc’
3.布尔值,true转为字符串’true’,false转为字符串’false’
Sting(true) // ‘true’
4.undefined 或 null
String(undefined) // ‘undefined’
String(null) // ‘null’
5.对象。参数如果是对象,返回一个类型字符串;如果是数组,返回该数组的字符串形式,相当于调用数组的Array.prototype.join()方法
String({a:1}) // ‘[object object]’
String([1,2,3]) // ‘1,2,3’

Boolean()
使用Boolean函数,可以将任何类型转化为布尔值。转化规则如下:
除了undefined,null,0,NaN,’'空字符串 这五种情况,转化为false。其他情况均转化为true。

当然,true和false这两个布尔值不会发生变化
Boolean(true) // true
Boolean(false) // false

所有对象(包括空对象)的转换结果都是true
Boolean({}) //true
Boolean([]) //true

自动转换
1.数值跟字符串相加。加法运算符,会把参数转为字符串
123+‘123’ // ‘123123’
2.预期为数值,除了加法运算符,其余运算符会自动把参数转化为数值
‘5’*‘1’ // 5
‘5’-‘2’ // 3
3.预期为布尔值,比如if条件语句
if( !undefined // true
&& !null // true
&&!0 // true
&&!NaN // true
&&!’’ // true
){
console.log(true) //true
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值