JS

算数运算符

/*
算数运算符(基础数字运算)
+ - * / %(求余数)
当不是数字之间的运算的时候
+号两边一旦有字符串,那么+号就不再是数学运算了,而是拼接,最终结果是字符串
-/*% 尽量将字符串转换成数字进行计算(隐式类型转换)
*/
-----------------
    <script>
        var a="11";b=2;c="11a";
        alert(a+b);    //  "112"   string
        alert(a-b);    //   9      number
        alert(a*b);    //   22     number
        alert(a%b);    //   1      number
        alert(a%c);    //  NaN    "11a" 不能转换成 数字
    </script>

赋值运算符

/*
2. 赋值运算符
+= -= *= /= %=
++ -- 两个都存在隐式类型转换,会全部转换为数字
++x x++
*/
x ++ = x, ++ x=x+1
5 ++ = 5, ++ 5=6
    <script>
        var d=5;g=5;
        alert(++ d);  // 6
        alert(g ++);  // 5

        var x=5;
        var y= x ++;
        alert(x);   // 2.再执行 x=x++   5+1   6
        alert(y);   // 1.先执行 y=x  =5

        var a=5;
        var b=++ a;
        alert(a);  // 1.先执行 a=++a,1+5,6
        alert(b);  // 2.再执行 b=a=6
    </script>

逻辑运算符:与或非

    <script>
        /*
            1.针对布尔值
            &&  与 两边都为真,结果才为真,其他为假
            ||  或 两边都为假,结果才为假,其他都是真
            !   非 取反,真变假,假变真
         */

        // 2.当逻辑运算符,两边不一定是布尔值的时候
            // && 遇到假就停,但是不会进行类型转换
            // || 遇到真就停,但是不会进行类型转换
            // ! 隐式类型转换,将后面的数据先转换为布尔值再取反
            //
        // && 遇到假就停,但是不会进行类型转换
        var a=0;b=22;
        alert(a&&b);  // 遇到0停止 弹出0
        alert(b&&a);  // 遇到0停止 弹出0
        // || 遇到真就停,但是不会进行类型转换
        alert(a||b);  // 遇到22挺,弹出22
        alert(b||a);  // 遇到22挺,弹出22
        // ! 隐式类型转换,将后面的数据先转换为布尔值再取反
        var x=!5;y=!0;  // 5为真 取反为假;0为假取反为真
        alert(x);  // 弹出 false
        alert(y);  // 弹出 true
    </script>
原文地址:https://www.cnblogs.com/tangpg/p/8324525.html