一、数值类型转换
- Number(数据):转换为数值类型
注意点:
(1)true转换为数值类型为1
(2)false和 ''转换为数值类型为0
(3)非数字转换为数值类型为NaN
console.log(Number('18')); //18
console.log(Number(true)); //1
console.log(Number(false)); //0
console.log(Number(''));//0
console.log(Number('abc12'));//NaN-非数字,但属于数字类型
- parseInt(数据):转为整数数值类型
注意点:把字符串转换为一个整数时,如果数字带字母字母必须要在数字的后面 。
console.log(parseInt('10'));//10
console.log(parseInt('10.22'));//10
console.log(parseInt('12px'));//12
console.log(parseInt('abc12'));//NaN
- parseFloat(数据):转换为小数数值类型
注意点:把字符串转换为一个带小数的数值类型时,如果数字带字母字母必须要在数字的后面。
console.log(parseFloat('18'));//18
console.log(parseFloat('20.5555555'));//20.555555
console.log(parseFloat('12.55px'));//12.55
console.log(parseFloat('abc12.22'));//NaN
总结:
如果需要转换的数字类型的字符串是整数,我们使用Number或者parseInt方法。
如果需要转换的数字类型的字符串带小数:我们使用parseFloat 。
二、字符串类型转换
- String(数据)
console.log(String(1));//'1'
console.log(String(true));//'true'
console.log(String(undefined));//'undefined'
console.log(String(null));// 'null'
- 变量.toString(进制)
进制:计算机识别的代码(2,8,10,16进制)
let str1 = 18
let str2 = false
console.log(str1.toString());//'18'
console.log(str2.toString());//'false'
注意点: undefined和null不能使用toString方法
三、布尔类型转换
- Boolean(数据):转为布尔类型
‘’,0,undefined,null,false,NaN这几个值转布尔类型为false
其他所有的值转布尔类型都为true
console.log(Boolean(''));//false
console.log(Boolean(0));//false
console.log(Boolean(undefined));//false
console.log(Boolean(null));//false
console.log(Boolean(false));//false
console.log(Boolean(NaN));//false
console.log(Boolean(' '));//true
console.log(Boolean(1));//true
console.log(Boolean('你好'));//true
四、null和undefined的区别
- undefined:未定义-定义变量没有赋值时出现
let age
console.log(age);//undefined
- null:空值-代表空对象
let obj = null;//let obj = {}
console.log(typeof obj);//object
五、数字类型NaN
- NaN:计算错误时出现
let uname = '张三'
let age = 18
console.log(uname - age);//NaN-not a Number:这不是一个数字
- NaN-进行运算-结果都是NaN
console.log(NaN + '18');//NaN18
console.log(NaN + 18);//NaN
console.log(NaN - 18);//NaN
console.log(NaN * 18);//NaN
- NaN不等于它自己
console.log(NaN == NaN);//false
console.log(NaN === NaN);//false
- NaN数据类型是数字类型(重点)
console.log(typeof NaN);//number
六、隐式转换
显式转换:自己转换
隐式转换:浏览器转换
- +号-数字相加,字符串相拼
console.log(1 + 2); //3
console.log(1 + '2'); //'12'
- +号-可以当正号解析,转为数值类型
console.log(typeof +'1');//number
- 运算符除了使用+号时会进行拼接,使用其他符号时浏览器默认会把数据类型转换为数值类型。
console.log(1 - '1');//0
console.log(1 * '5');//5
console.log(10 / '2');//5
- !逻辑非-自动转为布尔类型进行取反
console.log(!(1 > 2));//true
console.log(!'你好');//false
console.log(typeof +‘123’);//number