// 说到数据类型转换就要先了解都有哪些数据类型
// JS基本类型(值类型):字符串(string)、数字(number)、布尔(boolean)、空(null)、未定义(undefined)、symbol(symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值)
// typeof 返回值只有六种
// 注意: null 是特殊的对象
1 //number boolean undefined string object function
// 数据类型转换分为隐式类型转换和显式类型转换
// 隐式类型是程序内部自动完成的
// 显示类型转换是程序员手动完成的
// 显示类型转换:
//1.转换成string类型
(1)String() String()函数可以转 undefined 和null
1 var n; //typeof undefined 2 console.log(String(n)); //undefined 3 console.log(typeof String(n)); //stirng
2).toStirng()
toString()方法不能转 undefined 和null
1 var m;2 console.log(typeof m.toString());//报错Uncaught TypeError: Cannot read property 'toString' of undefined
(3)数据+""
1 var m = 23+"";2 console.log(typeof m);//string
2.转换number类型
(1) parseInt()
转换成整数(偏向于转字符串)
1 console.log(typeof parseInt("23"));//number 2 console.log(typeof parseInt("a23"));//NaN 3 4 5 特点: 从左到右解析,遇到非数字字符,就停止解析,输出 6 如果第一个字符就是非数字返回NaN (NaN也是number类型)
(2) parseFloat()
转换成小数
1 console.log(typeof parseInt("23"));//number 2 console.log(typeof parseFloat("a23.23"));//NaN 3 console.log(parseFloat("23.23.23"));//23.23 4 5 特点和转换成整数一样
(3) Number()
转换成数字包括小数
转换数据中有任意一个非数字字符 返回NaN
1 console.log(Number(true));// 2 console.log(Number(false));//0 3 console.log(Number(undefined));//NaN 4 console.log(Number("23.23w"));//NaN 5 console.log(Number(null));//0 6 console.log(Number(""));//0
特点: 它偏向于转Boolean类型
(4)在数字前面 加 + 号
最简单最实用的方法,效果同Number()
1 (4)在数字前面 加 + 号 2 最简单最实用的方法,效果同Number()
注意:任何类型之前只要有加号就是要转换为Number类型
3. 转换boolean类型
首先Boolean()
注意:布尔类型强制转换的八个false
1 console.log(Boolean(0));//false 2 console.log(Boolean(-0));//false 3 console.log(Boolean(undefined));//false 4 console.log(Boolean(null));//false 5 console.log(Boolean(false));//false 6 console.log(Boolean(NaN));//false 7 console.log(Boolean(""));//false 8 console.log(Boolean(document.all));//false
隐式类型转换
1.转换成字符串: 字符串连接符 + 左边或右边有字符串
var m = 23+"23"; console.log(m);//2323 console.log(typeof m);//string
2.转换成数字: 自增自减 算数运算符(+做字符串连接符 除外)
var m = +"23"; console.log(m);//23 console.log(typeof m);//number var t = true; var f = false; console.log(t++);// console.log(t--);//2 console.log(f++);//0 console.log(f--);// console.log(typeof t++);//number console.log(typeof f++);//number
3.转换成布尔类型:! 逻辑非
隐式转换 :
1.转换成字符串 : + 字符串连接符 运算符两边, 只要有一遍是字符串, 那么就会把另外一遍一转成字符串进行拼接
document.write("aaa" - ); // NaN document.write("aaa" * ); // NaN document.write("aaa" + ); // aaa document.write("aaa" + true); // aaatrue
2.转换成数字 : 自增自减 算术运算符(除+作为字符串连接符以外) 两边必须是数字才能进行计算
document.write(true + 5); // 6 document.write(true + "5"); // true5 document.write(undefined + ); // NaN document.write(false + null); // 0
3.转成布尔类型 : ! 逻辑非的操作数必须是布尔类型, 计算机自动转换
console.log(!); // false console.log(!null); // true console.log(!" "); // false console.log(!"false"); // false