写点什么

【JavaScript】:有关 js 类型转换的那些事...

作者:翼同学
  • 2022 年 8 月 25 日
    广东
  • 本文字数:1291 字

    阅读完需:约 4 分钟

【JavaScript】:有关js类型转换的那些事...

前言

大家好,我是翼同学。今天笔记的内容是:


  • 简单类型转换



内容


JavaScript 的类型转换灵活多样,无论是隐式类型转换还是显示类型转换,方法都有很多。具体请往下看:

数字转换为字符串


JavaScript 中,如果某处期望使用数字,则会将字符串转换为数字。


举个例子:


"PI:" + 3.14  // => "PI:3.14"
复制代码


可以看到,在上述例子中,当数字和字符串用加号+相连时,数字会自动转换为字符串。因此我们说,n + ""的效果等价于使用String(n)函数。


另外,为了提高代码可读性,我们也可以显示转换类型。比如使用和String()函数,或者toString()方法。值得一提的是,toString()方法可以可以添加参数radix,用于表示转换基数(进制数),并且radix参数的范围在2~36之间。


举个例子:


var data = 19;bStr = data.toString(2);      // => "10011"oStr = "0" + data.toString(8);      // => "023"hStr = "0x" + data.toString(16);    // => "0x13"
复制代码


最后,再记录两个数字转换为字符串的方法:


  • toExponential(n) :使用指数计数法,此时小数点前只有一位,小数点后有几位由参数 n 决定


举个例子:


var data = 967.12345;data.toFixed(0)  // => "967"data.toFixed(3)  // => "967.123"data.toFixed(6)  // => "967.123450"
复制代码


  • toFixed(n) :控制输出数值小数点后的位数,由参数 n 决定


举个例子:


var data = 967.12345;data.toExponential(0);  // => "1e+3"data.toExponential(3);  // => "9.671e+2"data.toExponential(6);  // => "9.671235e+2"
复制代码


可以看到,上述的两个方法在使用中,会适当进行补 0 或者四舍五入



字符串转换为数字


同样的,如果 JavaScript 期望使用数字,则会将给定的字符串转换为数字。


举个例子:


"4" * "6"  // => 24"5" / "2"  // => 2.5"15" - "5" // => 10
复制代码


当然,如果转换的结果没有意义,则返回NaN


举个例子:


"value" * "5"  // => NaN
复制代码


另外,在显示类型转换中,除了使用Number()函数外,也可以使用这两个全局函数parseInt()parseFloat()。此时需要注意的是,前者只解析整数,可接受第二个参数用于表示转换的基数(该参数的范围也是2~36),后者整数和浮点数都可解析,并且,如果传入的字符串中,第一个非空字符属于非法的数字直接量,则函数返回NaN


举一些例子:


parseInt("110")         // => 110parseInt("010")         // => 10parseInt("30而立")         // => 30parseInt("0x152")        // => 338parseInt("1111", 2)     // => 15parseInt("a", 16)       // => 10parseInt("2.22")       // => 2parseInt("0.18")       // => 0parseFloat("0.18")       // => 0.18parseFloat("#3.14")        // => NaNparseFloat(" 6.66的红包")   // => 6.66
复制代码



转换为布尔值


JavaScript 中,会根据需求自行转换为布尔值。比如将一些真值转换为 true,将一些假值转换为 false。举例:能转换为false的有空字符串"",关键字nullundefined,数字0(和-0)。


对于显示类型转换,则可以使用函数Boolean()。需要注意的是,如果将对象(包括函数或数组)转换为布尔值,则结果一律为true。即使我们调用new Boolean(false),该对象最后也是为true



写在最后


好了,今天的笔记就记到这里。

发布于: 2022 年 08 月 25 日阅读数: 58
用户头像

翼同学

关注

知行合一 2022.08.02 加入

@珠海科技学院

评论

发布
暂无评论
【JavaScript】:有关js类型转换的那些事..._JavaScript_翼同学_InfoQ写作社区