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()。

 

posted @ 2020-03-29 15:05  Codermoon  阅读(171)  评论(0)    收藏  举报