JavaScript 是一种动态类型语言,这意味着变量的数据类型是在运行时确定的,并且可以在程序执行期间改变。在 JavaScript 中,简单数据类型(也称为原始类型)包括:Number、String、Boolean、null、undefined 、symbol和 BigInt。听说大厂面试经常考类型转换的问题,我们今天就来探讨探讨。
1. 转换为字符串
- 使用全局函数
String()或调用值的.toString()方法:
console.log(String()) // ''
console.log(String(false)) // 'false'
console.log(String(true)) // 'true'
console.log(String(+0)) // '0'
console.log(String(-0)) // '-0'
console.log(String(NaN)) // 'NaN'
console.log(String(undefined)) // 'undefined'
console.log(String(null)) // 'null'
console.log(String(123)) // '123'
function a(){}
console.log(String(a)) // 'function a(){}'
console.log(String(1/0)) // 'Infinity'
2. 转换为数字
- 使用全局函数
Number()或解析函数如parseInt()和parseFloat():
console.log(Number(+0)) // 0
console.log(Number(-0)) // -0
console.log(Number(NaN)) // NaN
//undefined 数值上下文中没有转成一个特定数字的含义
console.log(Number(undefined)) // NaN
console.log(Number('')) // 0
console.log(Number(' ')) // 0
console.log(Number(null)) // 0
console.log(Number('123')) // 123
console.log(Number('-123')) // -123
console.log(Number('123a')) // NaN
console.log(Number('0x123')) // 291
3. 转换为布尔值
- 使用全局函数
Boolean()可以将任何值转换为布尔值:
console.log(Boolean()) // 默认值为false
console.log(Boolean(false))
console.log(Boolean(true))
console.log(Boolean(+0)) // false
console.log(Boolean(-0)) // false
console.log(Boolean(NaN)) // false
console.log(Boolean('')) // false
4. 其他转换
null和undefined没有直接的方法来转换其他类型,但当它们参与某些操作时,它们可以被隐式地转换为0或false。
5. 总结
-
转String
Number、Boolean:使用String()函数或调用.toString()方法。null、undefined:直接使用String()函数会得到"null"和"undefined"字符串。
-
转number
String:使用Number()函数、parseInt()或parseFloat()。注意非数字字符会导致转换结果为NaN。Boolean:true转换为1,false转换为0。null:转换为0。undefined:转换为NaN。
-
转Boolean
- 空字符串 (
"")、0、-0、null、undefined、NaN、false:转换为false。 - 其余的所有:转换为
true
- 空字符串 (
以上就是今天分享所有内容了,喜欢的点个赞再走吧