js隐式转换

250 阅读1分钟

js数据类型有

Number(NaN是特殊的一个值)

String

Boolean

Undefined(未初始化的变量或未定义的变量)

Null(Null类型属于对象??)

Symbol

Object(数组属于对象)

基本运算 + - × ÷ %(取余) 加号有连接的意思 其他符号都是运算

number与number 相加

string与string 连接

boolean与boolean 类型转换 true为1 false为0

undefined与undefined 类型转换 undefined为NaN

Null与Null 类型转换 Null为0

Number与String Number转换为String 连接

Number与Boolean Boolean转换为Number 相加

Number与Null和undefined:Null,undefined转换为Number 分别为0 ,NaN 相加

String和别的类型 别的类型转换为String 连接

Boolean与Null和undefined:Null,undefined转换为Number 分别为0 ,NaN 相加

Null与undefined 转换为Number 为NaN 相加

总结: 当加号运算符时,String和其他类型时,其他类型都会转为 String;其他情况,都转化为Number类型 , 注: undefined 转化为Number是 为’NaN‘, 任何Number与NaN相加都为NaN。其他运算符时, 基本类型都转换为 Number,String类型的带有字符的比如: '1a' ,'a1' 转化为 NaN 与undefined 一样。