美文网首页
03-数据类型及转换

03-数据类型及转换

作者: 鱼头很厉害 | 来源:发表于2020-01-13 15:13 被阅读0次

    数据类型

    在JS中一共有两大数据类型
    1.基本数据类型

    (1)Number 数值类型
    在JavaScript中无论整数还是小数都是属于数值类型的

            //例:
            let num = 3.14;
            console.log(typeof num);//number
            let num = 123;
            console.log(typeof num);//number
    

    (2)String 字符串类型
    在JavaScript中无论单引号还是双引号括起来的都是属于字符串类型的
    相同引号不能嵌套,不同引号可以嵌套,双引号不能放双引号,单引号不能放单引号
    给变量加上引号, 那么变量将变为一个常量

            //例:
            let res = typeof ('abc');
            let res = typeof ("abc");
            console.log(res);
    

    (3)Boolean 布尔类型
    在JavaScript中比较特殊,只有两个取值true/false

            //例:
            let res = typeof true;
            let res = typeof false;
            console.log(res);//boolean
    

    (4)Undefined 未定义类型
    在JavaScript中未定义类型比较特殊,只有一个值undefined

            //例:
            let num;//由于没有给num这个变量初始化,所以这个变量中保存的数据默认是undefined
            console.log(num);//输出num变量中保存的数据
            let res = typeof num;//利用typeof检查num中保存的数据是什么类型的,也就是说检查undefined是属于什么类型
            console.log(res);//undefined
    

    (5)Null 空类型

    2.引用数据类型
    Object 对象类型

    3.typeof操作符
    在JavaScript中为了方便我们检测某一种数据类型属于哪一种数据类型,JavaScript提供了一个名称叫做typeof的操作符
    格式: typeof 需要检测的数据;
    typeof操作符会将检查的结果以字符串的形式返回给我们

            //利用typeof检测123这个常量是属于哪一种数据类型的,并且将检测的结果保存到res这个变量中
            let res = typeof 123;
            let res = typeof 3.14;
            console.log(res);
    

    转为字符串类型

    1.将Number类型转换为字符串类型
    2.将String类型转换为字符串类型
    3.将Undefined类型转换为字符串类型
    4.将Null类型转换为字符串类型

    在JavaScript中如果想将以上的四种基本数据类型转换为字符串类型,常用的方法有三种:

    1.对于Number和Boolean类型来说,可以通过 变量名称.toString()的方式来转换

    注意点:在谷歌浏览器控制台中如果是Number类型是蓝色的,String类型是灰色的
    变量名称.toString是对拷贝的数据进行转换,所以不会影响原有的数据
    不能使用常量直接调用toString方法,因为常量是不能改变的

    //例:
           let value = 123;
           console.log(value);
           console.log(typeof value);
           //以下代码含义:将value中存储的数据拷贝一份,然后将拷贝的数据转换为字符串之后返回
           let str = value.toString();
           console.log(str);
           console.log(typeof str);
    
           let str = 123.toString();//错误,常量不能转换
    
           //Boolean类型转换字符串类型
           let str = true;
           let str2 = true.toString();
           console.log(typeof str2);//string
    

    2.可以通过String(常量or变量);转换为字符串
    //注意点:
    变量名称.toString()的方式前面不能是常量,因为常量不能被改变
    String(常量or变量),因为根据传入的值重新生成一个新的值并不是修改原有的值.

            let str = String(123);
            console.log(str);
            console.log(typeof str);
    
            //Undefined转换字符串
            let value = undefined;
            console.log(value);
            console.log(typeof value);
            //以下代码含义:根据传入的数据重新生成一个新的字符串
            let str = String(value);
            console.log(str);
            console.log(typeof str);
    
            //Null转换字符串
            let value = null;
            console.log(value);
            console.log(typeof value);
            let str = String(value);
            console.log(str);
            console.log(typeof str);
    
            //Number转换字符串
            let value = 123;
            console.log(value);
            console.log(typeof value);
            let str = String(value);
            console.log(str);
            console.log(typeof str);
    
            //Boolean转换字符串
            let value = true;
            console.log(value);
            console.log(typeof value);
            let str = String(value);
            console.log(str);
            console.log(typeof str);
    

    3.通过 变量or常量 + "" /变量or常量+ ''转换为字符串

     //变量例:
            let value = 123;
            let str = value + '';
            let str = value + "";//
            console.log(str);
            console.log(typeof str);
    
            //常量例:
            let str = 123 + '';//+''或者+""底层的本质其实就是调用String()函数
            console.log(str);
            console.log(typeof str);
    

    转为数值类型

    1.将String类型转换为数值类型
    - 如果字符串中都是数值,那么就正常转换
    - 如果字符串是一个空串"",那么转换之后的0
    -如果字符串中不仅仅是数字,那么转换之后是NaN

    2.将Boolean类型转换为数值类型
    - true转换之后是1
    - false转换之后是0

    3.将Undefined类型转换为数值类型
    - 转换之后是NaN

    4.将Null类型转换为数值类型
    - 转换之后是0

    空字符串/false/null/转换之后都是0,其他正常转换

    在JavaScript中如果想将以上四种基本数据类型转换为数值型,常用的方法有三种:
    1.通过Number(常量or变量);方式来转换

    //将String类型转换为数值类型
            变量:
            let str = "123";
            console.log(str);
            console.log(typeof str);
            let num = Number(str);
            console.log(num);
            console.log(typeof num);
    
            常量:
            let num = Number("123");
            console.log(num);
            console.log(typeof num);
    
            //注意点:如果字符串中没有数据,那么转换的结果是0
            let str = "";
            let num = Number(str);
            console.log(num);
            console.log(typeof num);
    
            //注意点:如果字符串中的数据不仅仅是数值,那么转换的结果是NaN
            //NaN === Not a Number
            let str = "12px";
            let num = Number(str);
            console.log(num);//NAN
            console.log(typeof num);//number
    
            //布尔类型的true,转换之后结果是1,false转换之后的结果是0
            let flag = true;
            let num = Number(flag);
            console.log(num);//1
            console.log(typeof num);
    
            //Null类型转换结果是0
            let flag = null;
            let num = Number(flag);
            console.log(num);//1
            console.log(typeof num);
    
            //Undefined转换结果是NaN
            let flag = undefined;
            let num = Number(flag);
            console.log(num);//1
            console.log(typeof num);
    

    2.用数学中的加号+来转换

    let str = "123";
            let num = +str;
            console.log(num);//123
            console.log(typeof num);//number
    

    注意点:虽然通过+/-都可以将其他类型转换为数值类型,但是会改变数值的正负性
    +/-底层本质上就是调用了Number函数

            let str = "123";
            let num = -str;
            console.log(num);
            console.log(typeof num);
    

    3.parseInt(需要转换的字符串)/parseFloat(需要转换的字符串)
    注意点:parseInt/parseFloat都会从左至右的提取数值,一旦遇到非数值就会立即停止,停止的时候如果没有提取到数值,那么就返回NaN
    parseInt/parseFloat都会将传入的数据当做字符串来处理

           //parseInt提取整数
            let str = "12px";
            let num = parseInt(str);
            console.log(num);//12
            console.log(typeof num);
    
             //parseInt提取整数
            let str = "3.14px";
            let num = parseFloat(str);
            console.log(num);//3.14
            console.log(typeof num);
    
            //非数值停止
            let str = "a12px";
            let num = parseInt(str);
            console.log(num);//NaN
            console.log(typeof num);
    
            //
            let value = true;
            let num = parseInt(value);
            console.log(num);//返回NaN,相当于parseInt("true"),没有数值,所以返回NaN
            console.log(typeof num);
    

    转换为布尔类型

    1.将String类型转换为布尔类型
    只要字符串中有内容都会转换为true,只要字符串中没有内容才会转换为false

            // let str = "abc";//true
            // let str = "   ";//true
            let str = "";//false
            let flag = Boolean(str);
            console.log(flag);
            console.log(typeof flag);
    

    2.将Number类型转换为布尔类型
    只有数值是0才会转换为false,其他的都会转换为true
    如果是NaN也会转换为false

           //let num = 999;//true
            //let num = -123;//true
            //let num = -0;//false
            let num = 0;//false
            let flag = Boolean(num);
            console.log(flag);
            console.log(typeof flag);
    
            //注意点:在JavaScript中NaN属于number类型
            let num = NaN;
            console.log(typeof num);//number
    

    3.将Undefined类型转换为布尔类型
    Undefined会转换为false

            let num = undefined;
            let flag = Boolean(num);
            console.log(flag);
            console.log(typeof flag);
    

    4.将Null类型转换为布尔串类型
    Null会转换为false

            let num = null;
            let flag = Boolean(num);
            console.log(flag);
            console.log(typeof flag);
    

    总结:
    在JavaScript中如果想将基本数据类型转换为布尔类型,那么只需要调用Boolean(常量or变量)
    空字符串/0/NaN/undefined/null 会转换为false,其他都是true

    相关文章

      网友评论

          本文标题:03-数据类型及转换

          本文链接:https://www.haomeiwen.com/subject/mgzgactx.html