类型转换:
在数据类型中,某些场景下,需要进行的操作,需要将类型转换才可以完成,需要将类型转成另一种类型
目标类型:number string boolean
被转换的类型:number string boolean null undefined
转成number
强制转换:利用js系统提供的工具来转换
1.Number()
将字符串转成number
` var str = '11'
var num = Number(str)
console.log(num);
` 数字字符串可以转成具体数字,空字符串可以转成0,其他字符串都是NaN
`var str = ''
var num = Number(str)
console.log(num);`
将boolean转成number - true为1,false为0
` var bool = false
var num = Number(bool)
console.log(num); `
将null转成数字 - 0
var a = null
var num = Number(a)
console.log(num);
undefined转数字 - NaN
var a
var num = Number(a)
console.log(num);
2.parseInt() - 只有开头有整数的字符串能转成具体的数字,其他数据都是NaN 字符串转数字 - 结果是 从前向后找到的第一个整数
var str = '11.88'
var num = parseInt(str)
console.log(num);
boolean转成数字 - NaN
var bool = false
var num = parseInt(bool)
console.log(num);
null -> number - NaN
var a = null
var num = parseInt(a)
console.log(num);
undefined -> number - NaN
var a
var num = parseInt(a)
console.log(num);
3.parseFloat()
字符串转数字 - 从前向后截取数字-带小数
var str = '11.88aa'
var num = parseFloat(str)
console.log(num);
其他数据转成数字 - NaN
var bool
var num = parseFloat(bool)
console.log(num);
/* 总结: Number()
空字符串转成0
数字字符串转成数字
true转成1
false转成0
null转成0
其他都是NaN
parseInt()
字符串开头有整数,取到整数
其他都是NaN
parseFloat()
字符串开头有数字-带小数点 - 取到前面的这个数字
其他都是NaN
*/
隐形的转换:没有使用工具,利用的运算
转数字
字符串转数字
当字符串碰到数学运算(除了加法)的时候,就会悄悄的转成数字,进行数学运算
var a = 10
var b = '5'
var c = a - b
console.log(c);
当字符串跟数字进行比较运算的时候,只要运算符左右两边有一个是数字,另一个也会悄悄的转成数字进行大小比较
var a = 10
var b = '5'
var result = a > b
console.log(result);
布尔值转数字
var a = 2 + true
console.log(a); // 3
var result = 2 > true
console.log(result);
/* 其他类型隐形转成数字: 1.数学运算 2.比较运算 */
其他类型转字符串
强制转换
1.String()
var num = true
var str = String(num)
console.log(str);
2.数据.toString()
var num = true
var str = num.toString()
console.log(str);
隐形转换
+号左右两边有一个是字符串,另一个也会悄悄的转成字符串,进行拼接
var num = 20
var result = num + '11'
console.log(result);
/* 总结:
强制:
String()
数据.toString()
隐形:
+号一边是字符串,另一边就会隐形转成字符串
*/
其他类型转布尔类型
强制转换
Boolean()
数字转布尔 - 0转成false,其他都是true
var num = 0
var bool = Boolean(num)
console.log(bool);
字符串转布尔 - 空字符串转成false,其他都是true
var str = ''
var bool = Boolean(str)
console.log(bool);
undefined转布尔 - false
var a
var bool = Boolean(a)
console.log(bool);
null转布尔 - false
var a = null
var bool = Boolean(a)
console.log(bool);
/* 总结: 重点
转布尔为false:0 空字符串 undefined null
其他数据都是true
*/