一元加和减操作符用于转换数据类型

154 阅读1分钟

一元加操作符以一个加号(+)表示,

放在非数值面前,该操作符会像 Number()转型函数一样对这个值执行转换。布尔值 false 和 true 将被转换为 0 和 1,字符串值会被按照一组特殊的规则进行解析,而 对象是先调用它们的 valueOf()和(或)toString()方法,再转换得到的值。

        let s1 = "01";
        let s2 = "1.1";
        let s3 = "z";
        let b = false;
        let f = 1.1;
        let o = {
            valueOf: function () {
                return -1;
            }
        };
        s1 = +s1; // 值变成数值 1 
        s2 = +s2; // 值变成数值 1.1 
        s3 = +s3; // 值变成 NaN 
        b = +b; // 值变成数值 0 
        f = +f; // 值未变,仍然是 1.1 
        o = +o; // 值变成数值-1

一元减操作符应用于于非数值时,遵循与一元加操作符相同的规则,最后再将得到的数值转换为负数

       let s1 = "01";
       let s2 = "1.1";
       let s3 = "z";
       let b = false;
       let f = 1.1;
       let o = {
            valueOf: function () {
                return -1;
            }
        };
        s1 = -s1; // 值变成了数值-1 
        s2 = -s2; // 值变成了数值-1.1 
        s3 = -s3; // 值变成了 NaN 
        b = -b; // 值变成了数值 0 
        f = -f; // 变成了-1.1 
        o = -o; // 值变成了数值 1