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

JS 里的数据类型转换

作者: Jason_Shu | 来源:发表于2018-09-15 19:25 被阅读0次

    前面我们说到一共有7中基本数据类型,分别是数字(Number), 字符串(String), 布尔值(Boolean), null, undefined,Symbol和对象(Object),其中除了对象以外的所有基本数据类型都属于简单数据类型,对象属于复杂数据类型。那么今天来总结下几种数据类型的转换方法, 本文暂时不考虑Symbol类型。

    1. 转换为String(3种方法)

    1.1 toString方法
    比如数字可以用toString方法可以转换为字符串,null和undefinde不能使用.toString(),会报错,对象的.toString()方法会返回'[object Object]'.

    (1).toString()  //  "1"
    var obj = {a: 1};
    obj.toString();   //  "[object Object]"
    

    1.2 另外两种对所有类型都可以使用,使用面更广。分别是String(a), a + ''.(a表示一个变量)
    举例来说:

    var a = 1;
    var obj = {a: 1};
    
    //Number
    String(1);  //  "1"
    1 + '' ;  //   "1"
    
    // null
    String(null)  // "null"
    null + ''  //  "null"
    
     //  undefined
    String(undefined)  // "undefined"
    undefined + ''  //  "undefined"
    
    //  object
    String(obj)  //  "[object Object]"
    obj + '';   // "[object Object]"
    
    1. 转换为Boolean类型(两种方法)
      分别是使用Boolean(a) 和 !!a . (a是一个变量)
      举例如下:
    Boolean(null)  // false
    !!null  //  false
    
    1. 五个falsy值
      分别是0, NaN, null, undefined, ''(空字符串)。就是这五个值在转换为布尔值都是false,其中像空数组[], 空对象{}转换为布尔值都是true.

    2. 转换为数字(5种方法)

    1.  Number(x)
    2.  parseInt(x, 10)  // 10代表十进制
    3.  parseFloat(x)  //  转为小数
    4.  x - 0
    5.  +x
    

    返回值要么是个数字,要么是NaN(不是数字)。

    通过笔者的实践,有两个注意点如下:
    (1) 对于null转为数字, parseInt和parseFloat会转为NaN,其他转换为0.

    Number(null);  //  0
    parseInt(null);  //  NaN
    parseFloat(null);  // NaN
    null + 0;  //  0
    +null  //  0
    

    (2) 对于字符串,一般情况下要么转为对应数字,要么显示NaN,但是字符串前几位是数字后面有字母,那么使用parseInt, parseFloat会把第一个字母前的数字返回。

    var a = "123xfaf2342";
    parseInt(a);  // 123
    parseFloat(a);  // 123
    

    相关文章

      网友评论

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

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