JavaScript-数据类型转换
JavaScript-数据类型转换
值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。
注:Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值。
一、typeof 判断数据类型
1、typeof 数据 //返回数据的类型
例如:
1 type "aaa" //返回string,得到string 2 3 var str; 4 console.log(typeof str); //因为没有赋值,所以它是undefined 5 6 var obj=null 7 console.log(typeof b); //b的类型是object
二、强制转换
1、String(数据) 强制转换为字符串
1)主动将数据的类型强制转换为某种类型。
2)数据.toString(进制) 强制转换为字符串。
3)null和undefined是不能转换的。
4)toString可以将任何数字转换为任意进制,进制必须大于等于2并且小于等于36也就是最小是2进制,最大是36进制,因为数字字母就36个。
5)toFixed(小数点后几位) 将数值转换为字符串,并且按照小数点四舍五入保留位数 。
6)任何数据都需要转换为二进制,但是原生js二进制小数转换以后恢复到数值时,是有误差的
例如:
1 var num=null; 2 var a=String(num); //转换成字符串类型 3 console.log(a);//打印a 4 console.log(typeof num);//检测num的数据类型为object 5 console.log(typeof a);//检测a的数据类型为string 6 7 8 var num=10;//num是一个数值型 9 var a=num.toString(2);//转换成字符串二进制 10 console.log(a);//打印a的结果 11 console.log(typeof num);//检测num的数据类型为number 12 console.log(typeof a);//检测a的数据类型为string
2、Number(数据) 强制转换为数值
1)NaN 非数值 类型是number
2)纯字符---> NaN
3)纯数字---> 数字
4)部分数字,部分字符---> NaN
5)布尔值---> 数字 true---> 1 false---> 0
6)undefined--->NaN
7)null--->0
例如:
1 var str="你好";//纯字符 NaN 2 var str="12";//数字12 3 var str="1a";//NaN 4 var num=Number(str);//转换成数值型 5 console.log(num); 6 7 // 布尔值 8 var b=false; 9 var num=Number(b); 10 console.log(num);//0 11 12 var a;//undefined--->NaN 13 var a=null;//null--->0 14 var num=Number(a); 15 console.log(num);
3、parseInt(字符,进制) 强转为整数
1)可以将指定进制方式字符串转换为10进制数值,是toString()逆转换
2)通过parseInt转换数值可以从开始转换到字符前为止变成数值,如果第一位是字符,返回NaN
3)布尔值强转数值整型,会变成NaN
4)undefined--->NaN
5)null--->NaN
6)纯字符---> NaN
7)纯数字--->数字
8)parseFloat(); 强转小数和parseInt类似,只不过可以保留小数位
例如:
1 //var str="你好";//结果为NaN 2 //var str = "20";//结果为数字20 3 //var str = "1010";//转换为2进制为数字10 4 //var str = false;//结果为NaN 5 //var str = true;//结果为NaN 6 //var str;//结果为NaN 7 //var str = null;//结果为NaN 8 //var str = 20.545;//结果为20 9 var num = parseInt(str); 10 console.log(num);
4、Boolean(数据) 转换为布尔值
"",0,false,undefined,null,NaN 转换为布尔值都会变成false,除此之外转换都是true
例如:
1 //var str = "";//结果为false 2 //var str = null;//结果为false 3 //var str;//结果为false 4 //var str = 0;//结果为false 5 //var str = false;//结果为false 6 //var str = NaN;//结果为false 7 var num = Boolean(str); 8 console.log(num);
(注)隐式转换
1)当数据类型不相同时,做数据的运算,就会自动将两端的数据转换为相同类型然后运算,这是隐式转换。
2)隐式转换遵从与 String() 、Number() 、Boolean()。

浙公网安备 33010602011771号