强制类型转换
首先,先来回顾一下js的数据类型
- null
- undefined
- boolean
- number
- string
- symbol(符号)
- object
前六种为基本数剧类型,也为简单数据类型
开始之前先拓展一个小知识”==”和”===”
常见的误区是”==检查值是否相等,===检查值和类型是否相等”
正确的解释是==允许在相等比较中进行强制类型转换,而===不允许。
先来看一个小例子
"42"==42//true
"42"===42//false
一个字符串就和一个数字就相等了,在看了我之前拓展的小知识之后,在==面前”42”被强制转化成为了42,所以就相等了
你对强制类型转换有没有兴趣呢
下面开始我们的正式表演
强制类型转换分为显示和隐式
显示的有String(),Number(),和Boolean()
1. String()
var a = 42;
var b = String(a);
b;//"42"
2.Number()
var c = "3.14";
var d = Number(c);
d;//3.14
3.Boolean()
var a = 0;
var b = 1;
Boolean(a)
Boolean(b)
注:一元运算符!显式的强制转化为布尔值
隐式的有各种运算符
通过重载,”+”运算符既能用于数字加法,也能用于字符串拼接。
一个小例子
var a = "42";
var b = "0";
var c = 42;
var d = 0;
a+b;//"420"
c+d;//42
为什么呢?