在js中存在着一些类型转换的规则,就是js中的隐式转换,这节我们就来归纳一下隐式转换的规则
递增递减运算符(前置、后置)
1.如果包含的是有效数字字符串或者是有效浮点数字符串,则会将字符串转换(Number())为数值,再进行加减操作,返回值的类型是:number类型
2.如果不包含有效数字字符串,则会将字符串的值转换为NaN,返回值的类型是:number类型
3.如果是boolean类型,则先会把true或者false转换为1或者0,再进行加减操作,返回值的类型是:number类型
4.如果是null,则先回把null转换为0,在进行加减操作,返回值的类型是:number类型
5.如果是undefined,则先会把undefined转换为NaN,再进行加减操作,返回值的类型是:number类型
6.如果是对象,则先会通过对象的valueOf()方法,进行转换,如果返回的是NaN,调用toString()方法,在进行前面的操作,返回值的类型是:number类型。(注:空数组[]会返回0,在进行加减操作,空对象则会返回NaN)。
逻辑操作符中的隐式转换规律
注:只有undefined、null、NaN、0、空字符串会被转换为false,其余都为true
逻辑操作符一般用于语句判断中。通过判断结果返回的值进行后面的语句操作。
1.逻辑非(!)操作符:首先会通过Boolean()函数将其操作值转