数据类型转换

Posted restart77

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据类型转换相关的知识,希望对你有一定的参考价值。

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

以上是关于数据类型转换的主要内容,如果未能解决你的问题,请参考以下文章

JS的数据类型判断函数数组对象结构处理日期转换函数,浏览器类型判断函数合集

sql 日期转换代码片段 - Dato,120,konvertere

HTML Bookmarklet模板:将任何JavaScript代码片段转换为Bookmarklet

对象不能从 DBNull 转换为其他类型。

java中把json怎么转换成数组?

结合两个代码片段?将用户输入的 Youtube url 转换为嵌入 url,然后将 iframe src 替换为转换后的 url