ES6 - 操作符


ES6 操作符

表达式是一种特殊的语句,它可以评估一个值。每个表达都是由 -

  • 操作数 - 表示数据。
  • 运算符 - 定义操作数如何处理以产生值。

考虑以下表达式-2 + 3.在表达式中,2和3是操作数,符号+(加号)是运算符。JavaScript支持以下类型的运算符 -

算术运算符

假设变量a和b中的值分别为10和5。

var num1 = 10
var num2 = 2
var res = 0

res = num1+num2
console.log("Sum:        "+res);

res = num1-num2;
console.log("Difference: "+res)

res = num1*num2
console.log("Product:    "+res)

res = num1/num2
console.log("Quotient:   "+res)

res = num1%num2
console.log("Remainder:  "+res)

num1++
console.log("Value of num1 after increment "+num1)

num2--
console.log("Value of num2 after decrement "+num2)

在成功执行上述程序时显示以下输出。

Sum: 12
Difference: 8
Product: 20
Quotient : 5
Remainder: 0
Value of num1 after increment: 11
Value of num2 after decrement: 1
操作符 描述 实例
+

返回操作数的总和。

a + b is 15
- 减法

返回值的差异。

a-b is 5
* 乘法

返回值的乘积。

a*b is 50
/ 除法

执行除法操作并返回商。

a/b is 2
% 取余

执行除法并返回余数。

a%b is 0
++ 自增

将变量的值加1。

a++ is 11
-- 自减

将变量的值减1。

a-- is 9

关系运算符

关系运算符测试或定义两个实体之间的关系类型。关系运算符返回一个布尔值,即true / false。

假设A的值是10,B是20。

var num1 = 5;
var num2 = 9;

console.log("Value of num1: " + num1);
console.log("Value of num2: " + num2);

var res = num1 > num2;
console.log("num1 greater than num2: " + res);

res = num1 < num2;
console.log("num1 lesser than num2: " + res);

res = num1 >= num2;
console.log("num1 greater than or equal to  num2: " + res);

res = num1 <= num2;
console.log("num1 lesser than or equal to num2: " + res);

res = num1 == num2;
console.log("num1 is equal to num2: " + res);

res = num1 != num2;
console.log("num1 not equal to  num2: " + res);

在成功执行上述程序时显示以下输出。

Value of num1: 5
Value of num2 :9
num1 greater than num2: false
num1 lesser than num2: true
num1 greater than or equal to num2: false
num1 lesser than or equal to num2: true
14 num1 is equal to num2: false
16 num1 not equal to num2: true
操作符 描述 实例
> 大于 (A > B) is False
< 小于 (A < B) is True
>= 大于等于 (A >= B) is False
<= 小于等于 (A <= B) is True
== 等于 (A == B) is False
!= 不等于 (A!= B) is True

逻辑运算符

逻辑运算符用于组合两个或更多条件。逻辑运算符也会返回一个布尔值。

假设变量A的值是10,B是20。

var avg = 20;
var percentage = 90;

console.log("Value of avg: " + avg + " ,value of percentage: " + percentage);
var res = ((avg > 50) && (percentage > 80));

console.log("(avg>50)&&(percentage>80): ", res);
var res = ((avg > 50) || (percentage > 80));

console.log("(avg>50)||(percentage>l80): ", res);
var res = !((avg > 50) && (percentage > 80));

console.log("!((avg>50)&&(percentage>80)): ", res);

在成功执行上述程序时显示以下输出。

Value of avg: 20 ,value of percentage: 90
(avg>50)&&(percentage>80):  false
(avg>50)||(percentage>80):  true
!((avg>50)&&(percentage>80)):  true

短路操作符

&&和||运算符用于组合表达式。仅当两个条件都返回true时,&&运算符才会返回true。让我们考虑一个表达式 -

var a = 10
var result = ( a<10 && a>5)

在上面的例子中,a<10 和 a> 5是由&&运算符组合的两个表达式。在这里,第一个表达式返回false。但是,&&运算符要求这两个表达式都返回true。所以,操作员跳过第二个表达式。

||如果其中一个表达式返回true,则返回true。例如

var a = 10
var result = ( a>5 || a<10)

在上面的代码片段中,两个表达式a> 5和a <10由一个||组合运营商。在这里,第一个表达式返回true。因为,第一个表达式返回true,||运算符跳过后面的表达式并返回true。

由于&&和||的这种行为他们被称为短路操作符。

操作符 描述 实例
&&

只有当指定的所有表达式返回true时,运算符才返回true。

(A > 10 && B > 10) is False
||

如果至少有一个指定的表达式返回true,则该运算符返回true。

(A > 10 || B > 10) is True
!

该运算符返回表达式结果的反转。例如:!(7> 5)返回false。

!(A > 10) is True

按位运算符

JavaScript支持以下按位运算符。下表总结了JavaScript的按位运算符。

var a = 2; // Bit presentation 10
var b = 3; // Bit presentation 11
var result;

result = (a & b);
console.log("(a & b) => ", result);

result = (a | b);
console.log("(a | b) => ", result);

result = (a ^ b);
console.log("(a ^ b) => ", result);

result = (~b);
console.log("(~b) => ", result);

result = (a << b);
console.log("(a << b) => ", result);

result = (a >> b);
console.log("(a >> b) => ", result);

在成功执行上述程序时显示以下输出。

(a & b) =>  2
(a | b) =>  3
(a ^ b) =>  1
(~b) =>  -4
(a << b) =>  16
(a >> b) =>  0
操作符 使用 描述
位与 a & b 返回两个操作数的相应位为1的每个位的位置
位或 a | b 返回每个位的位置,其中一个或两个操作数的相应位为1
位亦或 a^b 在每个位的位置返回一个,但不是两个操作数的相应位都是1
位取反 ~ a 反转其操作数的位
左移位 a << b 将b的二进制表示b(<32)位左移,右移0位
右移位 a >> b 将b的二进制表示b(<32)位向右移位,丢弃关闭的位
0填充右移位 a >>> b 将二进制表示b(<32)位向右移位,丢弃移位的位,并从左移零

赋值运算符

下表总结了赋值运算符。

var a = 12;
var b = 10;
a = b;
console.log("a = b: " + a);
a += b;

console.log("a+=b: " + a);
a -= b;

console.log("a-=b: " + a);
a *= b;

console.log("a*=b: " + a);
a /= b;

console.log("a/=b: " + a);
a %= b;

console.log("a%=b: " + a);

在成功执行上述程序时显示以下输出。

a=b: 10
a+=b: 20
a-=b: 10
a*=b: 100
a/=b: 10
a%=b: 0
Sr.No 操作符 & 描述
1

= (简单赋值)

将右侧操作数的值赋给左侧操作数。

实例 − C = A + B将把A + B的值赋给C

2

+= (加并且赋值)

它将右操作数添加到左操作数,并将结果分配给左操作数。

实例 − C + = A相当于C = C + A

3

-= (减并且赋值)

它从左操作数中减去右操作数,并将结果赋给左操作数。

实例 C - = A相当于C = C - A

4

`*=` (乘并且赋值)

它将右操作数与左操作数相乘,并将结果赋给左操作数。

实例 C * = A相当于C = C * A

5

/= (除并且赋值)

它将左操作数与右操作数分开,并将结果赋给左操作数。

注 - 相同的逻辑适用于按位运算符,因此它们将变为<< =,>> =,>> =,&=,| =和^ =。

杂项操作符

以下是一些杂项操作符。

否定运算符( - )

更改值的符号。以下程序是相同的示例。

var x = 4
var y = -x;
console.log("value of x: ",x); //outputs 4
console.log("value of y: ",y); //outputs -4

在成功执行上述程序时显示以下输出。

value of x:  4
value of y:  -4

字符串运算符:连接运算符(+)

var msg = "hello"+"world"
console.log(msg)

在成功执行上述程序时显示以下输出。

helloworld

串联操作不会在字符串之间添加空格。多个字符串可以连接在一个语句中。

条件运算符(?)

该运算符用于表示条件表达式。条件运算符有时也被称为三元运算符。以下是语法。

Test ? expr1 : expr2

这里,

  • Test - 指的是条件表达式
  • expr1 - 如果条件为真,则返回值
  • expr2 - 如果条件为false,则返回值

实例

var num = -2
var result = num > 0 ?"positive":"non-positive"
console.log(result)

第2行检查变量num中的值是否大于零。如果num设置为大于零的值,则返回字符串“positive”,否则返回“非正值”字符串。

在成功执行上述程序时显示以下输出。

non-positive

类型操作符

typeof 操作符

它是一个一元运算符。该运算符返回操作数的数据类型。下表列出了JavaScript中typeof运算符返回的数据类型和值。

类型 由typeof返回的类型
Number "number"
String "string"
Boolean "boolean"
Object "object"

以下示例代码将该数字显示为输出。

var num = 12
console.log(typeof num); //output: number

在成功执行上述代码时,会显示以下输出。

number