• 13-数据类型转换


    一、转为Number类型

    1.parseInt()

    遇到小数点,直接舍弃小数点后面的,不存在四舍五入

    2.parseFloat()

    可以转换小数

    3.Number()

    • 1.String
      • 1.如果字符串中是纯数字,则直接将其转换为数字。

      • 2.在转换时会先判断能否转换成数字,只要要字符串中包含了非数字的内容(字母,中文)(不包括小数点),则转换为 NaN。

      • 3.如果字符串是一个空串或者是一个全是空格的字符串,则转换为 0。

    • 2.Boolean
      • 1.false转为0
      • 2.true转为1
    • 3.null
      • 结果是0
    • 4.undefined
      • 结果是NaN

    4.parseInt()和parseFloat()

    • 1.String
      • 1.如果字符串中有无法转换的值,就停止转换
        • 值在开头:直接返回NaN
        • 值不在开头,就转换这个值前面的数字,值后的不管是什么自动舍弃
      • 2.如果字符串是一个空串或者是一个全是空格的字符串,结果是NaN。
    • 2.Blooean
      • 会自动识别为字母,所以结果是NaN
    • 3.null和undefined
      • 会自动识别为字母,所以结果是NaN
    • 4.别的进制会自动转为十进制
        <script>
        var num = 10,
            str = '666.66',//纯数字字符串
            str1 = '6a6',//数字在中间
            str2 = 'a66',//数字在开头
            str3 = '',//空
            boo = false,
            boo2 = true,
            a = undefined,
            b = null;
            // parseInt不保留小数
            console.log(parseInt(str));//666
            console.log(parseInt(str3));//NaN
            // parseFloat和parseInt不能转换boolean类型,会识别为字母
            console.log(parseInt(boo2));//NaN
            console.log(parseFloat(str));//666.66
            // 遇到不能转换的字符时,就停止转换,只转换该字符前面的
            console.log(parseFloat(str1));//6
            // 如果不能转换的值在开头,就会直接返回NaN
            console.log(parseFloat(str2));//NaN
            console.log(parseFloat(str3));//NaN
    
            console.log(Number(str));//666.66
            // Number()转化时,会先判断要转换的内容是否有不能转位数字的值,如果有,就直接NaN
            console.log(Number(str1));//NaN
            console.log(Number(str2));//NaN
            console.log(Number(str3));//0
            console.log(Number(boo));//0
            console.log(Number(a));//NaN
            // Number转换null是0
            console.log(Number(b));//0
            console.log(parseInt(b));//NaN
            console.log(parseInt(a));//NaN
    
            console.log(parseFloat(0x100));//256
      </script>
    

    5.隐式转换

    有特殊情况:
    null转换时会转换为0
    undefined转换时会转换为NaN

            console.log(+null);//0
            console.log(+undefined);//NaN
    
      <script>
            var str = '666';
            var a = false;
            // -*/
            console.log(typeof (str - 0));
            console.log(typeof (a * 1));
            console.log(typeof (str / 1));
    
            //正负号
            console.log(typeof (+a));
            console.log(typeof (-str));
    
            //自增自减
            console.log(typeof (++a));
            console.log(typeof (str++));
      </script>
    

    二、转为String类型

    1.String()强制转换,什么都转

    2.变量.toString()

    • 1.null和undefined无法调用这个方法
    • 2.括号里面可以跟想转换的进制
      <script>
        var num = 100,
            boo = false,
            a = null,
            b = undefined;
    
        console.log(num.toString());//10
        console.log(boo.toString());//false
        // 括号里可以跟想转换成几进制
        console.log(num.toString(2));//1100100
        // console.log(a.toString());//Cannot read property 'toString' of null
        // console.log(b.toString());//Cannot read property 'toString' of undefined
        console.log(String(num));//10
        console.log(String(boo));//false
        console.log(String(a));//null
        console.log(String(b));//undefined
      </script>
    

    3.隐式转换

    任何类型与''拼接,都会转为字符串

    三、转为Boolean

    1. Boolean()

    转为false的值:''、0、undefined、null、NaN、fasle、不成立的表达式

      <script>
        console.log(Boolean(''));//false
        console.log(Boolean(0));//false
        console.log(Boolean(undefined));//false
        console.log(Boolean(null));//false
        console.log(Boolean(NaN));//false
        console.log(Boolean(false));//false
        console.log(Boolean(1 + 1 < 1));//false
        
        // Boolean转换引用数据类型时,哪怕是空的,都返回true!!!!
        console.log(Boolean([]));//ture
        console.log(Boolean({}));//ture
      </script>
    

    2.隐式转换

      <script>
        // 隐式转换
        console.log(!!2);//true
        console.log(!!'');//false
      </script>
    

    四、typeof

      <script>
        console.log(typeof 1);//number
        console.log(typeof '');//string
        console.log(typeof false);//boolean
        console.log(typeof []);//object
        console.log(typeof function(){});//function
        console.log(typeof {});//object
        // null是一个空对象,所以返回object
        // 这是js遗留的一个bug
        console.log(typeof null);//object
        console.log(typeof undefined);//undefined
      </script>
    

  • 相关阅读:
    浅谈MapReduce
    Redis源码分析(三十五)--- redis.c服务端的实现分析(2)
    Redis源码分析(三十五)--- redis.c服务端的实现分析(2)
    Redis源码分析(三十五)--- redis.c服务端的实现分析(2)
    Confluence 6 手动安装语言包和找到更多语言包
    Confluence 6 安装一个语言组件
    Confluence 6 启用主题评论
    Confluence 6 启用远程 API
    Confluence 6 配置时间和日期格式
    Confluence 6 创建-使用-删除快捷链接
  • 原文地址:https://www.cnblogs.com/xiaoaitongxue/p/12733917.html
Copyright © 2020-2023  润新知