美文网首页
JS里的数据类型转换

JS里的数据类型转换

作者: 七月凛冬 | 来源:发表于2018-12-13 20:44 被阅读0次

    一、转为字符串

    1. toString()方法

    数值、字符串、对象、布尔;都有toString方法;这个方法唯一能做的就是返回相应的字符串;其中nullundefined没有toString()方法。

    x.toString()
    1. String(x)

    String()属于强制转换, null转换的结果为nullundefined转换的结果为undefined;其余的如果有toString()方法,即调用该方法,返回相应的结果。

    String(x)
    1. x + ''

    还有一种比较“老司机”的方法,就是任何数据类型直接 + 空字符串''就行了。如下:

    x + ''

    注意,如果非要将number + string,会调用number的toString方法,如下

    1 + '2'    相当于
    (1).toString() + '2'
    // '12'
    

    二、转为布尔

    1. Boolean()

    Boolean函数可以将任意类型的值转为布尔值。
    它的转换规则相对简单:除了以下五个值(5个falsy值)的转换结果为false,其他的值全部为true

    • undefined
    • null
    • -0+0
    • NaN
    • ''(空字符串)
    Boolean(undefined) // false
    Boolean(null) // false
    Boolean(0) // false
    Boolean(NaN) // false
    Boolean('') // false
    

    所有对象(包括空对象)的转换结果都是true,甚至连false对应的布尔对象new Boolean(false)也是true

    2.!!x
    还有一种比较聪明的方法就是通过!取反,这样的话两个感叹号!!就是负负得正,在一个数据类型前面加上!!就可以返回它本身的布尔值。

    !true // false
    !!true // true
    !!1 // true
    !!'' // false
    !!NaN // false
    

    三、转为数值

    1.Number()

    使用Number函数,可以将任意类型的值转化成数值。

    Number('1') // 1
    
    1. parseInt() (经常有人问的)

    parseInt() 函数解析一个字符串参数,并返回一个指定基数的整数 (数学系统的基础)。能解析多少就解析多少,一旦遇到不能解析的字符串,就立马退出返回结果。

    parseInt('1',10) // 1
    
    1. parseFloat()

    parseFloat() 函数解析一个字符串参数并返回一个浮点数。

    parseFloat("3.14");
    parseFloat("314e-2");
    parseFloat("0.0314E+2");
    parseFloat("3.14more non-digit characters");
    
    1. x - 0 (常用也常见)

    一个比较聪明的方法,也是比较骚的方法。(既有parseInt()的功能,也有parseFloat()的功能)

    '12' - 0 // 12
    '1.23' - 0 // 1.23
    
    1. +x

    通过取正(取它原本的值),来得出数值。

    + '1.23' // 1.23
    + '.1' // 0.1
    + '-1' // -1
    

    相关文章

      网友评论

          本文标题:JS里的数据类型转换

          本文链接:https://www.haomeiwen.com/subject/fjovhqtx.html