JavaScript——类型转换
JavaScript是弱类型语言,我们在开发过程中因为与用户的一些交互会导致一种数据类型转换为另外一种数据类型,这就是我们的类型转换
类型转换分2类型:显式类型转换、隐式类型转换
显式类型转换(主动)
本质:显式类型转换指在代码中使用内置函数或全局对象将一种类型显式地转换为另一种类型。
1、字符串转换:
String(数据) 、变量/数据.toString()
console.log((42).toString()); // "42"
console.log((true).toString()); // "true"
对象转字符串JSON.stringify(对象),得到JSON字符串
2、布尔类型转换:
Boolean(数据)
console.log(Boolean(0)); // false
console.log(Boolean("hello")); // true
3、对象类型转换:
Object(数据),字符串转对象JSON.parse(JSON字符串)
4、Symbol类型转换
Symbol(数据)
5、原始类型转换
valueOf(对象) 把对象转换成原始类型
6、转换成数字类型:
**转换数字Number(数据)** :传入的数据存在非数字,会返回NAN,整数、小数都能转换
取整转换parseInt(数据,进制模式):
-
从左往右依次转换,遇到非number就返回取整结果
-
如果没有number会返回NAN
-
如果传入了第二个参数,则按照该进制进行解析
let num = parseInt('111a') console.log(num,typeof(num)) // 111 'number' let a = parseInt('a111a') console.log(a,typeof(a)) // NAN 'number' var num1 = parseInt("AF",16); //175 var num2 = parseInt("AF"); //NaN var num3 = parseInt("10",2); //2 (按照二进制解析)
保留小数点转换parseFloat(数据),只解析十进制
-
转换成整数或小数,只应用于数字的第一个小数点
-
从左往右依次转换,遇到非number就返回转换结果
-
如果没有number会返回NAN
console.log(parseFloat("3.3333")) // 3.3333 console.log(parseFloat(".1")) // 0.1
隐式类型转换(被动)
本质:JavaScript 在运行时(运算、方法)自动将一种类型转换为另一种类型。
1、+
两边有一个是字符串,会把非字符串转换成字符串,最后拼接成一个字符串返回
2、-、*、/、%
都会把非数字类型转换成数字类型,如果无法转换则返回,NaN
3、NaN
任意数学运算得到的结果也一定是NaN