携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第14天,点击查看活动详情
1️⃣前言
大家好,我是翼同学。今天笔记的内容是:
- 简单类型转换
2️⃣内容
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") // => 110
parseInt("010") // => 10
parseInt("30而立") // => 30
parseInt("0x152") // => 338
parseInt("1111", 2) // => 15
parseInt("a", 16) // => 10
parseInt("2.22") // => 2
parseInt("0.18") // => 0
parseFloat("0.18") // => 0.18
parseFloat("#3.14") // => NaN
parseFloat(" 6.66的红包") // => 6.66
转换为布尔值
在JavaScript中,会根据需求自行转换为布尔值。比如将一些真值转换为true,将一些假值转换为false。举例:能转换为false的有空字符串"",关键字null和undefined,数字0(和-0)。
对于显示类型转换,则可以使用函数Boolean()。需要注意的是,如果将对象(包括函数或数组)转换为布尔值,则结果一律为true。即使我们调用new Boolean(false),该对象最后也是为true
3️⃣写在最后
好了,今天的笔记就记到这里。