Js中的数据类型及数据类型转换

 

1、数据类型:

        原始值:数字、字符串、布尔值、undefined 、null  原始值存在于栈中,赋值相当于拷贝

        引用值:数组、对象(自定义对象、内置对象)、函数、日期、RegExp等 , 赋值相当于拷贝地址

         var b = [1, 2];  a = b;  --> a : [1, 2]   

         1) b = [3, 4];   -->a 不变 

         2) b.push(3)  -->b: [1, 2, 3]    a:[1, 2, 3]

typeof(null) --> "object"   typeof(undefined) --->"undefined"

2、数据类型转换

1)显示类型转换

  • Number( )     

 Number("12acd")--->NaN  Number("ad")--->NaN Number("123")  -->123   

 Number(null) --->0   Number(undefined) --->NaN

  • parseInt( )      parseInt(12.9) --->12  parseInt(null)--->NaN  parseInt("a123bc") ---> 123 

如果字符串前缀是"0x"或者是"0X",parseInt()将其解释为十六进制    parseInt("0xFF") -->255  parseInt("-0XFF") --->-255 此方法可以有两个参数,第二个参数表示第一个参数的进制  parseInt("10", 16)   将“10”是16进制,需要转成10进制的数字  ----> 16  

  • parseFloat( )     parseFloat("100.2abc")  ---> 100.2     此方法只有一个参数
  • toString( )      

 var demo = 10; demo.toString()  --> "10" 此方法可以传入参数,表示需要转换成几进制 var n =17; c = n.toString(2)  ---> c: "10001"                                                                     

2)隐式类型转换

  • isNaN( )            此方法会先调用Number( ),然后将转换结果与NaN比较   

                                 isNaN(null) --->false isNaN("123abc")-->true

  • ++和--              调用Number( ),转成数字后进行++或--           var ll = "abc"; ll++;  -->ll: NaN
  • 一元正负(+ -)转换成数字类型,隐式调用Number()        var a=+"12abc"  --> NaN    
  • 加号(+)          当加号两侧有一个是字符串,就会转换成字符串    var a=1+"a";  -->"1a"
  • - * / %               会转成数字    "13"%2  -->1    "a3"/2 --->NaN
  • < > <= >=       按照数值大小或ASCII表顺序比较,当两边有一个是数字,就会进行数字类型转换                               

        false > true  -->false       2 > 1 > 3 --->false     

       "3" >2 --->true  (字符串的比较) "3" > "2" ---> true        "10">"9"--->false                                                            

       null == undefined --->true    NaN == NaN  --->false   

  • undefined、 null 、 NaN 、""、 0、 false  ------>false

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值