这 4 个操作符可以作用于任何值,意思是不限于整数——字符串、布尔值、浮点值,甚至对象都可 以。递增和递减操作符遵循如下规则。
对于字符串,如果是有效的数值形式,则转换为数值再应用改变。变量类型从字符串变成数值。
对于字符串,如果不是有效的数值形式,则将变量的值设置为 NaN 。变量类型从字符串变成 数值。
对于布尔值,如果是 false,则转换为 0 再应用改变。变量类型从布尔值变成数值。
对于布尔值,如果是 true,则转换为 1 再应用改变。变量类型从布尔值变成数值。
对于浮点值,加 1 或减 1。
如果是对象,则调用其valueOf()方法取得可以操作的值。对得到的 值应用上述规则。如果是 NaN,则调用 toString()并再次应用其他规则。变量类型从对象变成数值。
let s1 = "2";let s2 = "z";let b = false;let f = 1.1;let o = {valueOf() {return -1;}};s1++; // 值变成数值 3s2++; // 值变成 NaNb++; // 值变成数值 1f--; // 值变成 0.10000000000000009(因为浮点数不精确)o--; // 值变成-2
