运算符

  • 运算元 —— 运算符应用的对象。比如说乘法运算 5 * 2,有两个运算元:左运算元 5 和右运算元 2。有时候人们也称其为「参数」。

  • 如果一个运算符对应的只有一个运算元,那么它是一元运算符。比如说一元负号运算符(unary negation)-,它的作用是对数字进行正负转换:

  • let x = 1;
    x = -x;
    alert( x ); // -1,一元负号运算符生效
  • 如果一个运算符拥有两个运算元,那么它是二元运算符。减号还存在二元运算符形式:   

let x = 1, y = 3;
alert( y - x ); // 2,二元运算符减号做减运算
  • 数字转化功能,一元运算符 +

加号 + 有两种形式。一种是以上讨论的二元运算符,还有一种是一元运算符。

一元运算符加号,或者说,加号 + 应用于单个值,对数字没有作用。但是如果运算元是非数字,它会将其转化为数字。

// 对数字无效
let x = 1;
alert( +x ); // 1

let y = -2;
alert( +y ); // -2

// 转化非数字
alert( +true ); // 1
alert( +"" );   // 0

它的效果和 Number(...) 相同,但是更加简短。

将字符串转化为数字的需求经常出现。比如,如果我们正在从 HTML 表单中取值,通常得到的都是字符串。如果我们想对他们求和,该怎么办?

二元运算符加号会把他们合并成字符串:

let apples = "2";
let oranges = "3";

alert( apples + oranges ); // "23",二元运算符加号合并字符串 

如果我们想把它们当做数字对待,我们需要转化它们,然后再求和:

let apples = "2";
let oranges = "3";

// 在二元运算符加号起作用之前,所有的值都转为数字
alert( +apples + +oranges ); // 5

// 更长的写法
// alert( Number(apples) + Number(oranges) ); // 5

 

  • 运算符优先级

  • 赋值运算符

我们知道赋值符号 = 也是一个运算符。在优先级表中显示它的优先级非常低,只有 3

赋值运算符 "=" 返回一个值.

  • 求余运算符 %

运算符 % 尽管看上去是个百分号,但和百分数没有什么关系。

a % b 的结果是 a 除以 b 的余数。

  • 幂运算符 **

幂运算符 ** 是最近被加入到语法中的。

对于自然数 ba ** b 的结果是 a 与自己相乘 b 次。

  • 自相加/自相减

重要:自相加/自相减只能应用于变量。尝试将其应用于数值(比如 5++)会报错。

  • 位运算符

位运算符把运算元当做 32 位比特整数,并在它们的二进制表现形式上操作。

这些运算符不是 JavaScript 特有的。它们在大部分的编程语言上都得到支持。

下面是位运算符:

    • 按位与 ( & )
    • 按位或 ( | )
    • 按位异或 ( ^ )
    • 按位非 ( ~ )
    • 左移 ( << )
    • 右移 ( >> )
    • 无符号右移 ( >>> )
  • 逗号运算符

逗号运算符 , 是最少见最不常使用的运算符之一。有时候它会被用来写更简短的代码,因此为了能够理解代码,我们需要了解它。

逗号运算符能让我们处理多个语句,使用 , 将它们分开。每个语句都运行了,但是只有最后的语句结果会被返回。

let a = (1 + 2, 3 + 4);
alert( a ); // 7 (3 + 4 的结果)

  



 

 

posted @ 2019-08-06 10:24  C_XingM  阅读(200)  评论(0)    收藏  举报