美文网首页前端小问题
强制类型转换和 隐式类型转换

强制类型转换和 隐式类型转换

作者: wsgdiv | 来源:发表于2021-01-15 16:33 被阅读0次

    含摘录,非原创
    强制: parseInt(), parseFloat(), Number(), Boolean(), String(),Math.round()
    Math.round():严格转换,不允许出现任何非数字的字符,否则NaN;取最接近的整数。
    Number():严格转换,不允许出现任何非数字的字符,否则NaN;直接转换
    隐式:
    ==之间发生的隐式类型转换;
    +*/-操作符的隐式类型转换;
    辑运算符 || &&;
    一元运算符 + - !

    解析:

    // 1.parseInt() 把值转换成整数
    parseInt("1234blue"); // 1234
    parseInt("0xA"); // 10
    parseInt("22.5"); // 22
    parseInt("blue"); // NaN
    // parseInt()方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。基是由parseInt()方法的第二个参数指定的,示例如下:
    parseInt("AF", 16); // 175
    parseInt("10", 2); // 2
    parseInt("10", 8); // 8
    parseInt("10", 10); // 10
    // 如果十进制数包含前导0,那么最好采用基数10,这样才不会意外地得到八进制的值。例如:
    parseInt("010"); // 8
    parseInt("010", 8); // 8
    parseInt("010", 10); // 10
    
    // 2.parseFloat() 把值转换成浮点数,没有基模式
    parseFloat("1234blue"); // 1234.0
    parseFloat("0xA"); // NaN
    parseFloat("22.5"); // 22.5
    parseFloat("22.34.5"); // 22.34
    parseFloat("0908"); // 908
    parseFloat("blue"); // NaN
    
    // 3.Number() 把给定的值转换成数字(可以是整数或浮点数),Number()的强制类型转换与parseInt()和parseFloat()方法的处理方式相似,只是它转换的是整个值,而不是部分值。示例如下:
    Number(false) // 0
    Number(true) // 1
    Number(undefined) // NaN
    Number(null) // 0
    Number("5.5") // 5.5
    Number("56") // 56
    Number("5.6.7") // NaN
    Number(new Object()) // NaN
    Number(100) // 100
    
    // 4.Boolean() 把给定的值转换成Boolean型
    Boolean(""); // false
    Boolean("hi"); // true
    Boolean(100); // true
    Boolean(null); // false
    Boolean(0); // false
    Boolean(new Object()); // true
    
    // 5.String() 把给定的值转换成字符串
    String(123) // "123"
    
    // 6. + -
    console.log(0 + '1') // "01"
    console.log(2 - '1') // 1
    

    相关文章

      网友评论

        本文标题:强制类型转换和 隐式类型转换

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