JavaScript 数据类型转换(Day4)

40 阅读3分钟

数据类型转换

数值

    var a='100'
    var b='abc'
    var c=true
    var d=null
    var e=undefined
    var f='123abc'
    var g='abc123'
    var h='123.85'
    var i='123.5.8'

1、Number(变量)

  • 可将一个变量强制转换为数值类型

  • 可转换小数并保留小数

  • 可转换布尔值

  • 遇到不可转换的返回NAN

        var num1=Number(a)
        var num2=Number(b)
        var num3=Number(c)
        var num4=Number(d)
        var num5=Number(e)
        var num6=Number(f)
        var num7=Number(g)  
        var num8=Number(h)
        var num9=Number(i)    
        console.log(num1) // 数字 100
        console.log(num2) // 数值类型 NAN
        console.log(num3) // 数字 1
        console.log(num4) // 数字 0
        console.log(num5) // 数值类型 NAN
        console.log(num6) // 数值类型 NAN
        console.log(num7) // 数值类型 NAN 
        console.log(num8) // 数字 123.85
        console.log(num9) // 数值类型 NAN    
    

2、parseInt(变量)

  • 从第一位开始检查,若为数字则进行转换,直到一个非数字内容

  • 第一位是非数字则直接返回NAN

  • 不识别小数,只保留整数

        var nums1=parseInt(a)
        var nums2=parseInt(b)
        var nums3=parseInt(c)
        var nums4=parseInt(d)
        var nums5=parseInt(e)
        var nums6=parseInt(f)
        var nums7=parseInt(g)
        console.log(nums1) // 数字 100
        console.log(nums2) // 数值类型 NAN
        console.log(nums3) // 数值类型 NAN
        console.log(nums4) // 数值类型 NAN
        console.log(nums5) // 数值类型 NAN
        console.log(nums6) // 数字 123
        console.log(nums7) // 数值类型 NAN
    

3、parseFloat(变量)

  • 从第一位开始检查,若为数字则进行转换,直到一个非数字内容

  • 第一位是非数字则直接返回NAN

  • 识别一次小数

        var numr1=parseFloat(a)
        var numr2=parseFloat(b)
        var numr3=parseFloat(c)
        var numr4=parseFloat(d)
        var numr5=parseFloat(e)
        var numr6=parseFloat(f)
        var numr7=parseFloat(g)
        var numr8=parseFloat(h)
        var numr9=parseFloat(i)
        console.log(numr1) // 数字 100
        console.log(numr2) // 数值类型 NAN
        console.log(numr3) // 数值类型 NAN
        console.log(numr4) // 数值类型 NAN
        console.log(numr5) // 数值类型 NAN
        console.log(numr6) // 数字 123
        console.log(numr7) // 数值类型 NAN
        console.log(numr8) // 数字 123.85
        console.log(numr9) // 数字 123.5
    

4、除加法外的数学运算

  • 运算符两侧均要求为可运算数字

  • 运算中任意一次为不可运算数则返回NAN

  • 加法不可用

        var anumber1=a-0
        var anumber2=a*1
        var anumber3=a/1
        var bnumber1=b-0
        var bnumber2=b*1
        var bnumber3=b/1
        var cnumber1=c-0
        var cnumber2=c*1
        var cnumber3=c/1
        var dnumber1=d-0
        var dnumber2=d*1
        var dnumber3=d/1
        var enumber1=e-0
        var enumber2=e*1
        var enumber3=e/1
        var fnumber1=f-0
        var fnumber2=f*1
        var fnumber3=f/1
        var gnumber1=g-0
        var gnumber2=g*1
        var gnumber3=g/1
        var hnumber1=h-0
        var hnumber2=h*1
        var hnumber3=h/1
        var inumber1=i-0
        var inumber2=i*1
        var inumber3=i/1
        console.log(anumber1) // 数字 100
        console.log(anumber2) // 数字 100
        console.log(anumber3) // 数字 100
        console.log(bnumber1) //数值类型 NAN
        console.log(bnumber2) //数值类型 NAN
        console.log(bnumber3) //数值类型 NAN
        console.log(cnumber1) // 数字 1
        console.log(cnumber2) // 数字 1
        console.log(cnumber3) // 数字 1
        console.log(dnumber1) // 数字 0
        console.log(dnumber2) // 数字 0
        console.log(dnumber3) // 数字 0
        console.log(enumber1) //数值类型 NAN
        console.log(enumber2) //数值类型 NAN
        console.log(enumber3) //数值类型 NAN
        console.log(fnumber1) //数值类型 NAN
        console.log(fnumber2) //数值类型 NAN
        console.log(fnumber3) //数值类型 NAN
        console.log(gnumber1) //数值类型 NAN
        console.log(gnumber2) //数值类型 NAN
        console.log(gnumber3) //数值类型 NAN
        console.log(hnumber1) // 数字 123.85
        console.log(hnumber2) // 数字 123.85
        console.log(hnumber3) // 数字 123.85
        console.log(inumber1) //数值类型 NAN
        console.log(inumber2) //数值类型 NAN
        console.log(inumber3) //数值类型 NAN
    

字符串

    var a=100
    var b=true
    var c=null
    var d=undefined

1、变量.toString()

  • 部分数据类型不能使用该方法进行转换,如undefined和null

        var string1=a.toString()
        var string2=b.toString()
        var string3=c.toString()
        var string4=d.toString()
        console.log(string1) // 字符串 100
        console.log(string2) // 字符串 true
        console.log(string3) // 报错 nnot read properties of null
        console.log(string4) // 报错 not read properties of undefined
    

2、String(变量)

  • 所有数据类型均适用

        var str1=String(a)
        var str2=String(b)
        var str3=String(c)
        var str4=String(d)
        console.log(str1) // 字符串 100
        console.log(str2) // 字符串 true
        console.log(str3) // 字符串 null
        console.log(str4) // 字符串 undefined
    

3、加法运算

  • 在JavaScript中,+ 有两个含义

  • 字符串拼接:只要+ 任意一边为字符串即进行字符串拼接

  • 加法运算:+ 两侧均为数字时才会进行算数运算

        var strs1=a+''
        var strs2=b+''
        var strs3=c+''
        var strs4=d+''
        console.log(strs1) // 字符串 100
        console.log(strs2) // 字符串 true
        console.log(strs3) // 字符串 null
        console.log(strs4) // 字符串 undefined
    

布尔值

  • 在JavaScript中,只有''0nullundefinedNAN 是false,其余均为true

        var a=''
        var b=0
        var c=null
        var d=undefined
        var e=NaN
        var f=100
        var boo1=Boolean(a)
        var boo2=Boolean(b)
        var boo3=Boolean(c)
        var boo4=Boolean(d)
        var boo5=Boolean(e)
        var boo6=Boolean(f)
        console.log(boo1) //布尔值 false
        console.log(boo2) //布尔值 false
        console.log(boo3) //布尔值 false
        console.log(boo4) //布尔值 false
        console.log(boo5) //布尔值 false
        console.log(boo6) //布尔值 true