• JavaScript操作符汇总


    操作符

    JavaScript 有赋值、比较、算术、位、逻辑、字符串和特殊运算符。本章描述了操作符,以及关于操作符优先级的一些信息。

    表 2.1 JavaScript 所有操作符简明列表。

    表 2.1 JavaScript 操作符

    操作符分类操作符描述




    + (加法) 将两个数相加。
    ++ (自增) 将表示数值的变量加一(可以返回新值或旧值)。
    - (求相反数,减法) 作为求相反数操作符时返回参数的相反数。作为二进制操作符时,将两个数相减。
    -- (自减) 将表示数值的变量减一(可以返回新值或旧值)。
    * (乘法) 将两个数相乘。
    / (除法) 将两个数相除。
    % (求余) 求两个数相除的余数。
    字符串操作符 + (字符串加法) 连接两个字符串。
    += 连接两个字符串,并将结果赋给第一个字符串。




    && (逻辑与) 如果两个操作数都是真的话则返回真。否则返回假。
    || (逻辑或) 如果两个操作数都是假的话则返回假。否则返回真。
    ! (逻辑非) 如果其单一操作数为真,则返回假。否则返回真。



    & (按位与) 如果两个操作数对应位都是 1 的话则在该位返回 1。
    ^ (按位异或) 如果两个操作数对应位只有一个 1 的话则在该位返回 1。
    | (按位或) 如果两个操作数对应位都是 0 的话则在该位返回 0。
    ~ (求反) 反转操作数的每一位。
    << (左移) 将第一操作数的二进制形式的每一位向左移位,所移位的数目由第二操作数指定。右面的空位补零。
    >> (算术右移) 将第一操作数的二进制形式的每一位向右移位,所移位的数目由第二操作数指定。忽略被移出的位。
    >>> (逻辑右移) 将第一操作数的二进制形式的每一位向右移位,所移位的数目由第二操作数指定。忽略被移出的位,左面的空位补零。




    = 将第二操作数的值赋给第一操作数。
    += 将两个数相加,并将和赋给第一个数。
    -= 将两个数相减,并将差赋给第一个数。
    *= 将两个数相乘,并将积赋给第一个数。
    /= 将两个数相除,并将商赋给第一个数。
    %= 计算两个数相除的余数,并将余数赋给第一个数。
    &= 执行按位与,并将结果赋给第一个操作数。
    ^= 执行按位异或,并将结果赋给第一个操作数。
    |= 执行按位或,并将结果赋给第一个操作数。
    <<= 执行左移,并将结果赋给第一个操作数。
    >>= 执行算术右移,并将结果赋给第一个操作数。
    >>>= 执行逻辑右移,并将结果赋给第一个操作数。




    == 如果操作数相等的话则返回真。
    != 如果操作数不相等的话则返回真。
    > 如果左操作数大于右操作数的话则返回真。
    >= 如果左操作数大于等于右操作数的话则返回真。
    < 如果左操作数小于右操作数的话则返回真。
    <= 如果左操作数小于等于右操作数的话则返回真。




    ?: 执行一个简单的“if...else”语句。
    , 计算两个表达式,返回第二个表达式的值。
    delete 允许你删除一个对象的属性或数组中指定的元素。
    new 允许你创建一个用户自定义对象类型或内建对象类型的实例。
    this 可用于引用当前对象的关键字。
    typeof 返回一个字符串,表明未计算的操作数的类型。
    void 该操作符指定了要计算一个表达式但不返回值。

    赋值操作符

    赋值操作符会根据其右操作数侧的值给左操作数赋值。

    实现版本 Navigator 2.0

    最基本的赋值操作数是等号(=),它会将右操作数的值直接赋给左操作数。也就是说,x = y 将把 y 的值赋给 x。其它的赋值操作符都是标准操作的缩略形式,列在表 2.2 中。

    表 2.2 赋值操作符

    缩写操作符 含义
    x += y x = x + y
    x -= y x = x - y
    x *= y x = x * y
    x /= y x = x / y
    x %= y x = x % y
    x <<= y x = x << y
    x >>= y x = x >> y
    x >>>= y x = x >>> y
    x &= y x = x & y
    x ^= y x = x ^ y
    x |= y x = x | y

    比较操作符

    所谓比较操作符,就是会比较其两边的操作数,并根据比较结果为真或假返回逻辑值。操作数可以是数值或字符串值。如果使用字符串值的话,比较是基于标准的字典顺序。

    实现版本 Navigator 2.0

    相关内容列在了表 2.3 中。对于该表中的示例,我们假定 var1 被赋予了值 3,而 var2 被赋予了值 4。

    表 2.3 比较操作符

    操作符 描述 返回真的例子
    相等(==) 如果操作数相等的话则返回真。 3 == var1
    不等(!=) 如果操作数不等的话则返回真。 var1 != 4
    大于(>) 如果左操作数大于右操作数的话则返回真。 var2 > var1
    大于或等于(>=) 如果左操作数大于等于右操作数的话则返回真。 var2 >= var1
    var1 >= 3
    小于(<) 如果左操作数小于右操作数的话则返回真。 var1 < var2
    小于或等于(<=) 如果左操作数小于等于右操作数的话则返回真。 var1 <= var2
    var2 <= 5

    算术操作符

    将给定数值(常量或变量)进行给定的计算,并返回一个数值。标准的算术操作符是加(+)、减(-)、乘(*)、除(/)四则运算。这些操作符与在其它编程语言中的作用一样。

    实现版本 Navigator 2.0

    % (取余)

    取余操作符用法如下:

    var1 % var2

    取余运算符将返回第一个操作数除以第二个操作数的余数。对于上面的例子来说,将返回 var1 变量除以 var2 变量的余数。更具体的例子是,12 % 5 将返回 2。

    ++ (自增)

    自增操作符用法如下:

    var++ 或 ++var

    该自增操作符将自增操作数(自己加上 1)并返回一个值。如果写在变量后面(如 x++),将返回自增前的值。如果写在变量前面(如 ++x),将返回自增后的值。

    例如,如果 x 是 3,那么语句 y = x++ 将先把 y 置为 3 再将 x 自增为 4。相反,语句 y = ++x 将先将 x 自增为 4,再将 y 置为 4。

    -- (自减)

    自减操作符用法如下:

    var-- 或 --var

    该自增操作符将自减操作数(自己减去 1)并返回一个值。如果写在变量后面(如 x--),将返回自减前的值。如果写在变量前面(如 --x),将返回自减后的值。

    例如,如果 x 是 3,那么语句 y = x-- 将先把 y 置为 3 再将 x 自减为 2。相反,语句 y = --x 将先将 x 自减为 2,再将 y 置为 2。

    - (求相反数)

    求相反数操作数将取得操作数的相反数。例如,y = -x 将把 x 相反数的值赋给 y;也就是说,如果 x 是 3 的话,y 就会获得 -3 而 x 还是 3。

    位操作符

    执行位操作时,操作符会将操作数看作一串二进制位(1和0),而不是十进制、十六进制或八进制数字。例如,十进制的 9 就是二进制的 1001。位操作符在执行的时候会以二进制形式进行操作,但返回的值仍是标准的 JavaScript 数值。

    表 2.4 JavaScript 位操作符总览

    表 2.4 位操作符

    操作符 用法 描述
    按位与 a & b 如果两个操作数对应位都是 1 的话则在该位返回 1。
    按位或 a | b 如果两个操作数对应位都是 0 的话则在该位返回 0。
    按位异或 a ^ b 如果两个操作数对应位只有一个 1 的话则在该位返回 1。
    求反 ~ a 反转操作数的每一位。
    左移 a << b 将 a 的二进制形式左移 b 位。右面的空位补零。
    算术右移 a >> b 将 a 的二进制形式右移 b 位。忽略被移出的位。
    逻辑右移 a >>> b 将 a 的二进制形式右移 b 位。忽略被移出的位,左侧补入 0。

    位逻辑操作符

    实现版本 Navigator 2.0

    从原理上讲,位逻辑操作符的工作流程是这样的:

    • 将操作数转换为 32 位的整型数值并用二进制表示。

    • 第一操作数的每一位与第二操作数的对应位配对:第一位对第一位,第二位对第二位,以此类推。

    • 对每一对位应用操作符,最终结果按位组合起来。

    例如,9 的二进制表示为 1001,15 的二进制表示为 1111。所以如果对这两个数应用位逻辑操作符,结果应该像下面这样:

    • 15 & 9 结果为 9 (1111 & 1001 = 1001)

    • 15 | 9 为 15 (1111 | 1001 = 1111)

    • 15 ^ 9 为 6 (1111 ^ 1001 = 0110)

    移位操作符

    实现版本 Navigator 2.0

    移位操作符需要两个操作数:第一个是要进行移位的数值,第二个指定要对第一个数移位的数目。移位的方向由使用的操作符决定。

    移位操作符将把两个操作符转换为 32 位整型数值,并返回与左操作数类型相同的结果。

    << (左移)

    该操作符将把第一个操作数向左移若干位。移出的位将被忽略。右侧空位补零。

    例如,9<<2 结果为 36,因为 1001 向左移两位变成 100100,这是 36。

    >> (算术右移)

    该操作符将把第一个操作数享有移若干位。移出的位将被忽略。左侧的空位补上与原来最左面位相同的值。

    例如,9>>2 结果为 2,因为 1001 右移两位变成 10,这是 2。反之,-9>>2 结果为 -3,因为要考虑到符号位。

    >>> (逻辑右移)

    该操作符将把第一个操作数享有移若干位。移出的位将被忽略。左侧的空位补零。

    例如,19>>>2 结果为 4,因为 10011 右移两位变成 100,这是 4。对于非负数,算术右移和逻辑右移结果相同。

    逻辑操作符

    逻辑操作符用 Boolean 值(布尔逻辑值)作为操作数,并返回 Boolean 值。

    实现版本 Navigator 2.0

    表 2.5 描述的很清楚。

    表 2.5 逻辑操作符

    操作符 用法 描述
    与(&&) expr1 && expr2 如果 expr1 为假则返回之,否则返回 expr2。
    或(||) expr1 || expr2 如果 expr1 为真则返回之,否则返回 expr2。
    非(!) !expr 如果 expr 为真则返回假,否则返回真。

    示例

    考虑下面的脚本:

    <script language="JavaScript1.2">"
    v1 = "猫";
    v2 = "狗";
    v3 = false;
    document.writeln("t && t 返回 " + (v1 && v2));
    document.writeln("f && t 返回 " + (v3 && v1));
    document.writeln("t && f 返回 " + (v1 && v3));
    document.writeln("f && f 返回 " + (v3 && (3 == 4))); document.writeln("t || t 返回 " + (v1 || v2));
    document.writeln("f || t 返回 " + (v3 || v1));
    document.writeln("t || f 返回 " + (v1 || v3));
    document.writeln("f || f 返回 " + (v3 || (3 == 4)));
    document.writeln("!t 返回 " + (!v1));
    document.writeln("!f 返回 " + (!v3));
    </script>

    该脚本将显示下列内容:

    t && t 返回 狗
    f && t 返回 false
    t && f 返回 false
    f && f 返回 false
    t || t 返回 猫
    f || t 返回 猫
    t || f 返回 猫
    f || f 返回 false
    !t 返回 false
    !f 返回 true

  • 相关阅读:
    学习JNA,Jnative
    JNative用法注意事项
    使用JNA替代JNI调用本地方法
    傅盛读书笔记:下一个Moonshot是什么?
    华为内部狂转好文:有关大数据,看这一篇就够了
    ws2_32.dll的妙用与删除 (禁网)
    保护颈椎重点按这三大穴位(图)
    在java中调用python方法
    在Windows中实现Java调用DLL(转载)
    java程序员,英语那点事
  • 原文地址:https://www.cnblogs.com/web1/p/6972632.html
Copyright © 2020-2023  润新知