JavaScript的类型转换

JavaScript的类型转换分为两种,显式转换(强制转换)和隐式转换(弱转换)

显式转换

强制类型转换主要针对功能的需要或为了使代码变得清晰易读,人为地进行类型的转换。在 JavaScript 中,强制类型转换主要是通过调用全局函数
Boolean() toString() String() Number()parseInt()parseFloat() 来实现。

Boolean()将可以转换的参数转为布尔
	console.log(Boolean('')) //空字符串转换为false
	console.log(Boolean('11')) //非空字符串转换为true
	console.log(Boolean(null)) //false
	console.log(Boolean(undefined)) //false
	console.log(Boolean(0)) //false
	console.log(Boolean(2213)) //非0转为true
	console.log(Boolean({})) //true
)
toString()将除null,undefined以外的参数转为字符串,String()可以将所有类型转换为字符串类型
const a = 123
console.log(a.toString()) //‘123’
const num = 15;
console.log(num.toString(2)) //转换为二进制 ‘1111’
console.log(num.toString(8)) //转换为二进制 ‘17’
console.log(num.toString(16)) //转换为二进制 ‘f’
console.log(null.toString()) // 报错,因为null和undefined没有toString() 方法
console.log(String(null)) //'null'
console.log(String(undefined)) //'undefined'
Number()将可以转换的参数转换为十进制数字,不能转换的转为NAN
console.log(Number(' ')) // 0
console.log(Number('010')) //10
console.log(Number('+0010')) //10
console.log(Number('-0010')) //-10
console.log(Number(true)) //1
console.log(Number(false)) //0
console.log(Number(null)) //0
console.log(Number('100px')) //含有不能转换的字符px ,所以结果为 NAN
console.log(Number('100 10')) //非纯数字包含了空格 NAN
console.log(Number(undefined)) //NAN
console.log(Number(new Date() )) //现在时间毫秒数
parseInt()将可以转换的参数转为整数,不能转的转为NAN
console.log(parseInt(' ')) //NAN
console.log(parseInt('112')) //112
console.log(parseInt(' 112')) //112
console.log(parseInt('11 2')) //解析到空格时自动停止 11
console.log(parseInt('11.2')) //11
console.log(parseInt(11.2)) //11
console.log(parseInt("1101",2)) //二进制转换为十进制整数 13
console.log(parseInt("a37f",16)) //16进制转换为十进制 41855
console.log(parseInt("xy123")) //前面是非数字字符时不能转换 NAN
console.log(parseInt("123xy123")) //中间是非数字字符时,解析到非数字字符自动停止 123
parseFloat()将参数转为浮点数
console.log(parseFloat('23.12')) //23.12
console.log(parseFloat("-3.12")) //-3.12
console.log(parseFloat(.86)) //0.86
console.log(parseFloat("314.4A11")) // 解析到非数字字符,314.4
console.log(parseFloat("aaa3.14")) //开头为非数字字符,解析不了,NAN
console.log(parseFloat("3.11 2.4A56")) //解析到空格 3.11
console.log(parseFloat("31.2.5")) //两个小数点时,只解析第一个小数点 31.2

隐式转换

JavaScript的数据类型分为六种,分别为null,undefined,boolean,string,number,object。object是引用类型,其它的五种是基本类型或者是原始类型。我们可以用typeof方法打印来某个是属于哪个类型的。不同类型的变量比较要先转类型,叫做类型转换,类型转换也叫隐式转换。隐式转换通常发生在运算符加减乘除,等于,还有小于,大于等。

  1. 如果表达式中同时存在字符串类型和数字类型的操作数,而运算符使用加号+,此时 JavaScript 会自动将数字转换成字符串
console.log(1+'2') //'12'
  1. 如果表达式运算符为-、*、/、%中的任意一个,此时 JavaScript 会自动将字符串转换成数字,对无法转换为数字的则转换为 NaN
console.log('20'/ 5) //4
console.log('20'- 25) //-5
console.log('20' * 2) //40
console.log('20' * a) //NAN
console.log("20"%"3") //2
  1. 运算符为++或–时,JavaScript 会自动将字符串转换成数字,对无法转换为数字的则转换为 NaN
console.log(++3) //4
console.log(--6) //5
console.log(--a) //NAN
  1. 运算符为>或<时,当两个操作数一个为字符串,一个为数字时,JavaScript 会自动将字符串转换成数字。返回布尔值
console.log('10'>6) //true
  1. !运算符将其操作数转换为布尔值并取反
console.log(!0) //true
console.log(!1) //false
console.log(!' ') //true
console.log(!'ok') //false
  1. 运算符为==、或===,当表达式同时包含字符串和数字时,JavaScript 会自动将字符串转换成数字,返回布尔值
console.log(2 == '2') //true
console.log(2 === '2') //false
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值