js数据类型的转换

// 说到数据类型转换就要先了解都有哪些数据类型
// 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
原文地址:https://www.cnblogs.com/zycs/p/13414637.html