zoukankan      html  css  js  c++  java
  • JavaScript--操作符

    JS操作符有

    一元操作符:递增(++)、递减(--);

    //一元操作符 特点:只能操作一个值;
    /*
    递增递减操作符 特点:操作符在前则先计算后使用;操作符在后面则先使用后计算。
    */
    var a = 20,
        b = 20;
    console.log(a++); //20
    console.log(a); //21
    console.log(++b); //21
    console.log(b); //21
    var c = 20,
        d = 20;
    console.log(--c); //19
    console.log(c); //19
    console.log(d--); //20
    console.log(d--); //19
    //应用于数字字符串时,先将其转换成数字在执行加减操作
    var s1 = "12";
    console.log(++s1); //13
    console.log(s1); //13
    //应用于非数字字符串,结果会变成NaN
    var s2 = "b";
    console.log(s2++); //NaN
    console.log(s2); //NaN
    //应用于布尔值时 false等效于0 true等效于1
    var boolean1 = false,
        boolean2 = true;
    console.log(boolean1--); //0
    console.log(boolean1); //-1
    console.log(boolean2--); //1
    console.log(boolean2); //0
    //应用于浮点型的值时 会因为四舍五入产生误差
    var float1 = 1.1;
    console.log(float1--); //1.1
    console.log(float1); //0.10000000000000009
    //应用于对象时 会先调用对象的Vlueof()方法 如果自己没有重写Valueof方法 那么会返回NaN;
    var oo = {
        /*valueOf: function() {
            return 2;
        }*/
    };
    console.log(--oo); //NaN
    console.log(oo); //NaN

    位操作符:按位非(~)、按位与(&)、按位或(|)、按位异或(^)、左移(<<)、右移(>>);

    /*
    负数是以二进制补码的方式存储
    求一个二进制的补码 以-18为例
    I:先不管符号 先得到该值的绝对值 18 -- 0000 0000 0000 0000 0000 0000 0001 0010
    II:按位求反 1111 1111 1111 1111 1111 1111 1110 1101
    III:反码加1 1111 1111 1111 1111 1111 1111 1110 1110
    */
    
    /*求反*/
    var num = -18; //18的二进制表示形式是 10010
    console.log(num.toString(2)); //输出-10010 编译器以一种更符合逻辑的方式输出了出来
    /*按位非*/
    var num1 = 18;
    var num2 = ~num1;
    console.log(num2); //按位非 相当于负值减1 -26
    var num3 = -num1 - 1;
    console.log(num3); //-26
    /*按位与 只要有一个是0就得0*/
    var rst1 = 1 & 3; //1:0001 3:0011
    console.log(rst1); //结果1
    /*按位或 只要有一个是1就得1*/
    var rst2 = 2 | 3;
    console.log(rst2); //3
    /*按位异或  不一样才得1*/
    var rest3 = 2 ^ 3;
    console.log(rest3); //1
    // 左移右移符号位不会动
    /*左移 整体向左边移动右边多余部分添0*/
    var rest4 = 2; //0010
    rest4 = 2 << 5; //0010 0000 0
    console.log(rest4.toString(2)); //64
    /*右移 向右整体移动 左边多余部分添加0*/
    var rest5 = 2;
    rest5 = 2 >> 5;
    console.log(rest5); //移动之后没有了 0

    布尔操作符:逻辑与(&&)、逻辑或(||)、逻辑非(!!);

    //逻辑非
    console.log(!false);
    console.log(!"haha"); //非空字符串为true
    console.log(!0); //数值0为false
    console.log(!NaN); //NaN为false
    console.log(!""); //空字符串为false
    console.log(!12235); //非零数值为true
    //逻辑与 拥有截断功能 前面为假 整个表达式为假
    console.log(1 == 2 && 1 > 2);
    //逻辑或 前面为真 整个表达式为真
    console.log(1 < 2 || 1 == 2);

    四则运算操作符:加(+)、减、乘、除;

    相等操作符:等(==)、不等(!=)、全等(===);

    关系操作符:小于(<)、小于等于(<=)、大于(>)、大于等于(>=);

    条件操作符:布尔表达式?表达式为真的操作:表达式为假的操作;

    赋值操作符:=、+=、-=、%=、/=、*=;

    逗号运算符:在一个语句中执行多个操作 (如:var a=0,b=1);

  • 相关阅读:
    幂等性
    视频上墙
    java 字符串 大小写转换 、去掉首末端空格 、根据索引切割字符 、判断是否含有某连续字符串
    Java 递归 常见24道题目 总结
    Java 单引号 与 双引号 区别
    细谈 Java 匿名内部类 【分别 使用 接口 和 抽象类实现】
    细谈 == 和 equals 的具体区别 【包括equals源码分析】
    简单谈谈 数组排序 的方法 【自定义算法 、 冒泡算法 等】
    细说 栈 为什么又被称为 栈堆 ?【得从数组变量讲起】
    简单谈谈 堆、栈、队列 【不要傻傻分不清】
  • 原文地址:https://www.cnblogs.com/bigbosscyb/p/12083948.html
Copyright © 2011-2022 走看看