这 4 个操作符可以作用于任何值,意思是不限于整数——字符串、布尔值、浮点值,甚至对象都可 以。递增和递减操作符遵循如下规则。
     对于字符串,如果是有效的数值形式,则转换为数值再应用改变。变量类型从字符串变成数值。
     对于字符串,如果不是有效的数值形式,则将变量的值设置为 NaN 。变量类型从字符串变成 数值。
     对于布尔值,如果是 false,则转换为 0 再应用改变。变量类型从布尔值变成数值。
     对于布尔值,如果是 true,则转换为 1 再应用改变。变量类型从布尔值变成数值。
     对于浮点值,加 1 或减 1。
     如果是对象,则调用其valueOf()方法取得可以操作的值。对得到的 值应用上述规则。如果是 NaN,则调用 toString()并再次应用其他规则。变量类型从对象变成数值。

    1. let s1 = "2";
    2. let s2 = "z";
    3. let b = false;
    4. let f = 1.1;
    5. let o = {
    6. valueOf() {
    7. return -1;
    8. }
    9. };
    10. s1++; // 值变成数值 3
    11. s2++; // 值变成 NaN
    12. b++; // 值变成数值 1
    13. f--; // 值变成 0.10000000000000009(因为浮点数不精确)
    14. o--; // 值变成-2