数据类型的转换
- 数据类型之间的转换,数值转成字符串,字符串转成布尔,布尔转成数字型
其他数据类型转成数值
number(变量)
可以把一个变量强制转换成数值类型
可以转换小数,会保留小数
可以转换布尔值
遇到不可转换的都会返回
NaN
//number
//转换的内容看成一个整体处理
//如果可以转成一个合法的数值, 则转成数字
//如果不能转成一个合法的数字,则转成NaN
//true->1 false->0
var num1 = 'abc123';
console.log(num1);
var num2 = Number(num1)
console.log(typeof (num2))
console.log(num2);//无法装成合法数值,就出现nan
console.log(Number(true));
var test;
console.log(Number(test));//nan
console.log(Number(null));//0
parseInt
(整型)
从第一位开始检查,是数字就转换,知道一个不是数字的内容
开头就不是数字,那么直接返回
NaN
不认识小数点,只能保留整数
//整形parseInt()
//不管转成什么,都是一位一位对待
//如果第一位不能转成合法数值,那么立马输出nan 然后停止转换
//如果第一位能转成合法数字 那么保留第一位 然后继续看第二位
//以此类推直到结束
//true->NaN flase->NaN
//不认小数点
var num3 = '123abc';
console.log(parseInt(num3));
console.log(parseInt(num3,16));//告诉转换器是一个16进制的数字,所以最总结果是转成10进制
console.log(parseInt('1010101'));//1010101
console.log(parseInt('1010101',2));//2转10进制 85
console.log(parseInt('123.45'));//小数点识别不了,不知道转成那个数字,所以停止 ,输出123
console.log(parseInt(true));//nan
console.log(parseInt(NULL));//NAN
var test;
console.log(parseInt(test));//nan
parseFloat(浮点型)
从第一位开始检查,是数字就转换,知道一个不是数字的内容
开头就不是数字,那么直接返回
NaN
认识一次小数点
//parseFloat()浮点型
// 也是以为一位的对待 同parseInt
// 如果第一位不能转成合法的值 那么就立马输出 NaN 然后停止转换
// 如果第一位可以转换 那么保留第一位 继续下一位
// 识别小数点
var test = '123.45';
console.log(parseFloat(test));// 123.45
console.log(parseFloat('123.45abc'));// 123.45
console.log(parseFloat('abc123.45'));// 123.45
var test;
console.log(parseFloat(test));// NaN
console.log(parseFloat(null));
-
+
运算符两边都是可运算数字才
如果运算符任何一边不是一个可运算数字,那么就会返回
NaN
(字符串)加法不可以用
//+ 除了相加 还有拼接的作用 console.log(typeof (1 + 1 + 'abc')); //只要两边有以一个字符串,那麽就是拼接 //从左往右运算2+'abc' 2abc console.log(typeof ('abc' + 1 + 1));//abc11 开始就见到字符串 后边全是拼接
其他数据转成字符串
-
变量.toString()
有一些数据类型不能使用
toString()
方法,比如undefined
和null
//toString() //变量.tostring() //数据.tostring() //不能转null 和 undefined console.log(typeof test.toString()); console.log(typeof 100e5.toString()); console.log(typeof 123.45.toString()); //console.log(typeof null.toString());//不可以转会报错 var test1 = true; console.log(typeof test1.toString()); var test3; //console.log(typeof test3.toString());//不可以转会报错
-
String(变量)
所有数据类型都可以
var test = 100; console.log(typeof test); //string() //任何类型都可以使用这个转成字符串 //原样显示 var y1; console.log(String(y1));
-
使用加法运算
在 JS 里面,
+
由两个含义字符串拼接: 只要
+
任意一边是字符串,就会进行字符串拼接加法运算:只有
+
两边都是数字的时候,才会进行数学运算//+ 除了相加 还有拼接的作用 console.log(typeof (1 + 1 + 'abc')); //只要两边有以一个字符串,那麽就是拼接 //从左往右运算2+'abc' 2abc console.log(typeof ('abc' + 1 + 1));//abc11 开始就见到字符串 后边全是拼接
其他数据转成布尔
-
Boolean(变量)
在 js 中,只有
''
、0
、null
、undefined
、NaN
,这些是false
其余都是
true
// 数值 整数 浮点数 科学计数 非数字NaN 0 0.0 // 字符串 "adsf" 'adf' `adf` '' "" // 布尔 true false // null undefined // 复杂数据类型 // function console.log(Boolean(0)) console.log(Boolean(0.0)) console.log(Boolean('abc'/123)) console.log(Boolean('')) console.log(Boolean("")) console.log(Boolean(true)) console.log(Boolean(false)) console.log(Boolean(null)) var test; console.log(Boolean(test) console.log(Boolean(-9999999999e88888888888)) // 0 0.0 NaN "" '' false null undefined // 复杂数据类型 引用类型中 如果是空的 结果一定是false // 重点 后边判断 逻辑运算 都会用到 // 转字符串 转数值 转 布尔 上面的都是 明着转换 // 后边知识点 很多隐式转换 // 负无穷 是true
-
-