12.19---06JS数据类型转换

115 阅读2分钟
  1. 转换为数字类型

  2. Number(数据)

可以用于任何数据类型, 将其转换为 数字类型

  • 字符串转数字

如果转换的字符串是纯数字组成的, 那么直接转换为 数字

如果转换的字符串是 空字符串或者空白字符串, 那么直接转换为 数字0

其他类型的字符串(不是 空---空白---纯数字字符串) 会转换为 NaN

NaN: 表示的是一个 number 的数字, 但是没有办法通过常规的数字表明它, 所以只能使用 NaN 来代替(坏掉的数字)

    console.log(typeof(Number('100')), Number('100'))   // number 100 会将 '100' 转换为 数字, 然后打印到控制台
    console.log(typeof(Number('')), Number(''))   // number 0
    console.log(typeof(Number(' ')), Number(' '))   // number 0
    console.log(typeof(Number('abc')), Number('abc'))   // number NaN
  • 布尔值转数字

true 转换为 1

false 转换为 0

    console.log(typeof(Number(true)), Number(true))   // number 1
    console.log(typeof(Number(false)), Number(false))   // number 0
  • undefined 转数字

会直接转换为 NaN

    console.log(typeof(Number(undefined)), Number(undefined))   // number NaN
  • null 转数字

会直接转换为 0

    console.log(typeof(Number(null)), Number(null))   // number 0

    
    console.log(typeof(parseFloat('100.123456789')), parseFloat('100.123456789')) // number 100.123456789
    

2. parseInt(数据) 转换为整数

会将数据转换为 number类型, 并且值是整数(直接忽略掉小数点以后的值, 并不是四舍五入)

在转换的时候, 如果数据是纯数字字符串或者是数字开头的字符串, 那么会转换为数字, 否则就是转换为 NaN

    console.log(typeof(Number('100.123456789')), Number('100.123456789'))   // number 100.123456789
    console.log(typeof(parseInt('100.123456789')), parseInt('100.123456789'))   // number 100
    console.log(typeof(parseInt('100')), parseInt('100'))   // number 100
    console.log(typeof(parseInt('100abc')), parseInt('100abc'))   // number 100
    console.log(typeof(parseInt('999abc')), parseInt('999abc'))   // number 999
    console.log(typeof(parseInt('abc')), parseInt('abc'))   // number NaN
    console.log(typeof(parseInt('abc666')), parseInt('abc666'))   // number NaN
    console.log(typeof(parseInt('')), parseInt(''))   // number NaN
    console.log(typeof(parseInt(' ')), parseInt(' '))   // number NaN
    console.log(typeof(parseInt(true)), parseInt(true))   // number NaN
    console.log(typeof(parseInt(false)), parseInt(false))   // number NaN
    console.log(typeof(parseInt(undefined)), parseInt(undefined))   // number NaN
    console.log(typeof(parseInt(null)), parseInt(null))   // number NaN

3. parseFloat(数据) 转换为小数

转换结果于 parseInt 类似, 但是在转换小数的时候会保留小数点后的数字

    console.log(typeof(parseFloat('100')), parseFloat('100')) // number 100
    console.log(typeof(parseFloat('100abc')), parseFloat('100abc')) // number 100
    console.log(typeof(parseFloat('999abc')), parseFloat('999abc')) // number 999
    console.log(typeof(parseFloat('abc')), parseFloat('abc')) // number NaN
    console.log(typeof(parseFloat('abc666')), parseFloat('abc666')) // number NaN
    console.log(typeof(parseFloat('')), parseFloat('')) // number NaN
    console.log(typeof(parseFloat(' ')), parseFloat(' ')) // number NaN
    console.log(typeof(parseFloat(true)), parseFloat(true)) // number NaN
    console.log(typeof(parseFloat(false)), parseFloat(false)) // number NaN
    console.log(typeof(parseFloat(undefined)), parseFloat(undefined)) // number NaN
    console.log(typeof(parseFloat(null)), parseFloat(null)) // number NaN
   

4. 扩展: 在实际开发中 我个人常用 数据 - 0 (暂时先不考虑原理)


     console.log(typeof('100'), '100')   // string 100
    console.log(typeof('100' - 0), '100' - 0)   // number 100
    console.log(typeof('100.99' - 0), '100.99' - 0)   // number 100