面试题中常见的类型转换陷阱

********本文基于ES5********

parseInt()获取到数字后,只取整数位部分,若为数字开头字符串,则取连续的、开头的数字,再取整数部分。demo如下:

    var i=1.6;
    console.log(parseInt("123abc"));   //123
    console.log(parseInt("12.3abc"));   //12
    console.log(parseInt("abc123"));  //NaN
    console.log(parseInt("abc"));    //NaN
    console.log(parseInt("1.6"));    //1
    console.log(parseInt(i));       //1

parseFloat() 该函数指定字符串中的首个字符是否是数字。如果是,则对字符串进行解析,直到到达数字的末端为止,然后以数字返回该数字,而不是作为字符串。

    console.log(parseFloat("2.3a"));  //2.3
    console.log(parseFloat("2.a3a"));  //2
    console.log(parseFloat("2.0a3a"));  //2
    console.log(parseFloat("a2.0a3a"));  //NaN
    console.log(parseFloat("12.300"));  //12.3

Number()函数把对象的值转换为数字。若遇到字符串,则取整体。其次,此函数还可将空字符串转化为0

    console.log(Number("abc123"));   //NaN
    console.log(Number("123abc"));   //NaN
    console.log(Number(""));    //0

  喜欢请点击右下角推荐,如有疑问可以留言,转载请标明出处。

原文地址:https://www.cnblogs.com/pomelott/p/6557034.html