码迷,mamicode.com
首页 > 其他好文 > 详细

数据类型转换

时间:2020-02-20 20:29:48      阅读:63      评论:0      收藏:0      [点我收藏+]

标签:其他   使用   javascrip   自动   parse   if语句   默认   转换函数   null   

1.强制转换    
    1.1  Number()
        (1)原始类型值
                Number(234 ).      //234. 数值转换后i还是原来的值
                Number(‘234‘ ).      //234。字符串如果可以被解析为数值,则转换后为相对应的值
                Number( ‘234abd‘ ).      //NaN字符串如果不可以被解析为数值,则转换后为NaN
                Number( ‘‘ ).      //0。 空字符串直接解析为0
                Number(false ) &   Number(true ).       //0 & 1       布尔值串true 转为1 false转为0
                Number( undefined ).      //NaN  undefined转换为NaN
                Number(null)      //0 null直接转为0,Number函数将字符串转为数值,要比parseInt函数严格很多。基本上,只要有一个字符无法转成数值,整个字符串就会被转为NaN。parseInt逐个解析字符,而Number函数整体转换字符串的类型,parseInt和Number函数都会自动过滤一个字符串前导和后缀的空格
            例如:parentInt(’42 abc’)        //42      
                  Number(’42 abc’)        //NaN 

        (2)对象
                Number({a:1}).      //NaN 
                Number([1,2])             //NaN
                Number([1])          //1   只有单个数值的数组转换才不是NaN

  1.2  String()
          (1)原始类型值  
                  String(234 )       //’234‘ 数值转换后为相应的字符串
                  String(‘234‘ ).      //‘234’。字符串转换后还是相对应的值
                  String(false &String(true ).       //‘false‘ & ’true‘   布尔值串true 转为‘true’ false转为’false‘
                  String( undefined ).      //‘undefined’   undefined转换为’undefined‘
                  String(null)      //’null‘ null直接转为’null

            (2)对象
                    String({a:1}).      //‘[object,object]’                        如果是对象,则返回类型字符串
                    String([1,2,3])          //‘1,2,3’                                   如果是数组,则返回该数组的字符串形式

  1.3  Boolean()
            Boolean函数可以将任意类型的值转为布尔值  
               注意:除了以下五个值的转换结果为false,其他的值全部为true。
                  Boolean(undefined)  //false  undefined     
                  Boolean(null)  //false        null    
                  Boolean(0)  //false         -0 或者+0 
                  Boolean(NaN)  //false      NaN    
                  Boolean(‘‘)  //false    空字符串

 2.自动转换
    遇到 下边三种情况,javaScript会强制转换
        123 +’abc’.    //‘123abc’对不同类型的数据相互运算时
        If(’abc’){
            Console.info(‘hello’)      //‘hello’ 对非布尔值类型的数据请求布尔值
        }    
       + {f00:’bar’} 或  -[1,2,3]    //NaN 对非数据类型的值使用一元运算符(即+ 或 - )

    自动转换的规则是:这里预期是什么类型的值,就调用该类型的转换函数,但是如果该位置即可以是字符串,也可能是数值,那么默认转为数值。由于自动转换具有不确定性,而且不易除错,建议在预期为布尔值、数值、字符串的地方,全部使用Boolean、Number和String函数进行显式转换。 

    2.1自动转换为布尔值
             遇到预期为布尔值的地方(比如if语句的条件部分),就会将非布尔值的参数自动转换为布尔值  

    2.2自动转换为字符串
            字符串的自动转换,主要发生在字符串的加法运算时。当一个值为字符串,另一个值为非字符串,则后者转为字符串

    2.3自动转换为数值
          遇到预期为数值的地方就会将参数值自动转换为数值。除了加法运算符(+)有可能把运算子转为字
          符串,其他运算符都会把运算子自动转成数值
3.隐式转换 涉及隐式转换最多的是+ 和 == 其中 +运算符即可数字相加,也可以字符串相加。所以转换时很麻烦。== 不同于===,故也存在隐式转换。- * / 这些运算符只会针对number类型,故转换的结果只能是转换成number类型 数字和字符串如果使用+运算符进行操作,那么会将数字先转换为字符串,然后进行字符串连接操作: var antzone = "antzone”; var num = 8; console.log(antzone+num);//antzone8 如果有布尔型参与,那么首先会将布尔值转换为对应的数字或者字符串,然后再进行相应的字符串连接或者算数运算 var bool = true; var num = 10; console.log(bool + num);//11 先将true转换为数字1,然后再进行算数加运算。 var bool = true; var str=‘123’; console.log(bool + str);//true123。 true转换为字符串‘true’,然后再进行字符串连接运算。   console.log(undefined+1);//NaN //和数字进行计算,undefined会转化成NaN console.log(null+1);//0 //和数字进行计算,null会转化为0 如果一个操作数为string、boolean、null、undefined,则在后台调用Number()函数,将其转换成数值,再进行操作。 var bool = true; var num = "8”;      console.log(bool - num);//-7

数据类型转换

标签:其他   使用   javascrip   自动   parse   if语句   默认   转换函数   null   

原文地址:https://www.cnblogs.com/restart77/p/12337073.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!