zoukankan      html  css  js  c++  java
  • 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>
    

  • 相关阅读:
    c# 异步和同步问题(转载)
    用Python作GIS之四:Tkinter基本界面的搭建
    Linux必知必会--vmstat
    Linux必知必会--awk
    Linux必知必会--sed
    Linux必知必会--grep
    Linux必知必会--curl
    康威定律
    移动端抓包合集
    MySQL重置自增id
  • 原文地址:https://www.cnblogs.com/xiaoaitongxue/p/12733917.html
Copyright © 2011-2022 走看看