JavaScript是一门弱类型语言,其灵活的设计初衷也带来了隐式转换的弊端;下面是对js数据类型转换的梳理es6
首先得知道js的数据类型6种基本数据类型与object设计
null
、undefined
、string
、number
、boolean
、symbol
(es6新增)+
、-
、*
、/
等等)的隐式转换:会将非number
转换成number;注意,当+
有一边为string时,+
属于字符串链接符;其余数据类型转number的规则(此规则属于ecma标准,须要记忆):原数据类型 | 转换成number 后的结果 |
---|---|
number |
原number |
string |
纯数字的字符串会转成对应数字,含非数字的会转换成NaN |
null |
0 |
undefined |
NaN |
boolean |
true => 1 ; false => 0 |
==
、+
、>=
)的隐式转换: 当有一边含有string时,会将非string的转成字符串来处理;其余数据类型转字符串的规则(此规则属于ecma标准,须要记忆):原数据类型 | 转换成string 后的结果 |
---|---|
number |
数字对应的string |
null |
'null' |
undefined |
'undefined' |
boolean |
true => 'true' ; false => 'false' |
注意:不含symbol是由于symbol不能转换
注意:两边都是对象时
==
运算符比较的是对象内存地址,