JavaScript的类型转换

JavaScript的类型转换,第1张

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方法打印来某个是属于哪个类型的。不同类型的变量比较要先转类型,叫做类型转换,类型转换也叫隐式转换。隐式转换通常发生在运算符加减乘除,等于,还有小于,大于等。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1321740.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-12
下一篇 2022-06-12

发表评论

登录后才能评论

评论列表(0条)

保存