JavaScript 运算符

运算符对给定的操作数执行数学和逻辑运算。

JavaScript具有以下类型的运算符:

  • 算术运算符

  • 赋值运算符

  • 比较运算符

  • 按位运算符

  • 逻辑运算符

  • 字符串运算符

  • 条件(三元)运算符

  • 一元运算符

  • 关系运算符

JavaScript算术运算符

算术运算符用于对数字执行算术运算。

算术运算符将数值作为其操作数,并返回单个数值。

运算符 描述 示例 定义
+ 加法 a + b a和b的总和
- 减法 a-b a和b之差
* 乘法 a * b a和b的乘积
** 求幂 a ** b a的b次方
/ 除法 a / b a除以b
% 求模(余数) a%b a / b的余数
++ 自增 a ++ a自增1
-- 自减 a-- a自减1

JavaScript赋值运算符

赋值运算符将值分配给JavaScript变量。

简单赋值运算符等于(=),它将其右操作数的值赋给其左操作数。

运算符 描述 示例 等同
= 赋值 a = b a = b
+= 相加之后再赋值 a + = b a = a + b
-= 相减之后再赋值 a-= b a = a-b
*= 相乘之后再赋值 a * = b a = a * b
**= 求幂之后再赋值 a ** = b a = a ** b
/= 相除之后再赋值 a / = b a = a / b
%= 求模之后再赋值 a%= b a = a%b

JavaScript比较运算符

比较运算符用于比较两个值并返回布尔值。

运算符 描述 示例 定义
== 等于 a == b 如果a等于b,则为真
=== 相同 a === b 如果a等于b,并且属于相同类型,则为true
!= 不相等 a!= b 如果a不等于b为真
!== 不相等包括类型 a!== b 如果a不等于b,并且不是同一数据类型,则为true
> 大于 a> b 如果a大于b,则为true
< 小于 a <b 如果a小于b,则为true
>= 大于或等于 a> = b 如果a大于或等于b,则为true
<= 小于或等于 a <= b 如果a小于或等于b,则为true

(a ==b)和(a ===b)之间的区别是:

  • == 如果a等于b,则返回true

  • ===如果a等于b,并且它们属于同一类型,则返回true

可以在条件语句中使用比较运算符来比较值并根据得到结果进入不同流程。

在本教程的后面,您将学习如何使用条件语句。

JavaScript 按位运算符

按位运算符将其操作数视为一组32位(零和一),而不是十进制,十六进制或八进制数字。

该操作中的任何数字操作数都将转换为32位数字。结果转换回JavaScript编号。

运算符 描述 示例 等同 结果 小数
& 5&1 0101和0001 0001  1个
| 5 | 1 0101 | 0001 0101  5
~ ~5  ~0101 1010  10
^ 异或 5 ^ 1 0101 ^ 0001 0100  4
<< 左移 5 << 1 0101 << 1 1010  10
>> 有符号右移 5 >> 1 0101 >> 1 0010   2
>>> 无符号右移 5 >>> 1 0101 >>> 1 0010   2

上面的示例使用4位无符号示例。但是JavaScript使用32位带符号的数字。

因此,在JavaScript中,~5不会返回10。它将返回-6。

~00000000000000000000000000000101将返回11111111111111111111111111111010

JavaScript逻辑运算符

逻辑运算符用于确定变量或值之间的逻辑。

逻辑运算符通常用于组合条件语句,它们返回布尔值。

运算符 描述 示例 定义
&& 逻辑与 a && b 如果a和b都为真,则为真
|| 逻辑或 a|| b 如果a或b为真,则为真
! 逻辑非 !a 如果a不为真,则为真

JavaScript字符串运算符

该+运算符还可以用于连接(拼接)字符串。

var str1 = "Hello";
var str2 = "World";
var str3 = str1 + " " + str2;

加法赋值运算符+=还可以用于连接(拼接)字符串。

var str1 = "Hey! ";
str1 += "How r u doing?";

在字符串上使用时,该+运算符称为串联运算符。

JavaScript条件(三元)运算符

条件运算符是唯一采用三个操作数的JavaScript运算符。

描述可以根据条件获得两个值之一。语法为:

condition ? val1 : val2

如果condition 的计算结果为true,则将返回val1,否则将返回val2

您可以在使用标准运算符的任何位置使用条件运算符。

var status = (age >= 18) ? "成人" : "小孩";

如果年龄为18岁或以上,则以上语句将值“成人”分配给变量status。否则,它将为status分配值“ 小孩”。

JavaScript一元运算符

一元运算是只有一个操作数的运算。

JavaScript中包含三个一元运算符:

描述 描述
delete 删除对象,对象的属性或数组中指定索引处的元素
typeof 返回变量的类型
void 指定要求值的表达式而不返回值

delete运算符

delete运算符可删除对象,对象的属性或数组中指定索引处的元素。

如果可以执行操作,则delete运算符返回true;否则,返回false。 如果无法执行操作,则返回false。

如果delete操作符成功,它将属性或元素设置为undefined:

var user = {firstName:"Vishal", age:"22", color:"blue"};
delete user.firstName;  // returns true

当delete运算符删除数组元素时,该元素将从数组中移除。

var fruits = ["Apple""Mango""Banana"];
delete fruits[0];   // delete "Apple"

注意:删除数组元素时,数组长度不受影响。

typeof运算符

的typeof操作者返回一个变量或表达式的类型。

typeof ""  // Returns "string"
typeof "Vishal"// Returns "string"
typeof "42"// Returns "string" (Number within quotes is String)
typeof 42  // Returns "number"
typeof true// Returns "boolean"
typeof false   // Returns "boolean"
typeof undefined   // Returns "undefined"
typeof null// Returns "object"
typeof {name:"Vishal"age:22// Returns "object"
typeof [2468]// Returns "object" (not "array", see note below)
typeof function myFunc(){} // Returns "function"

注意:typeof操作符为数组返回“object”,因为在JavaScript中数组是对象。

这是typeof运算符返回值的列表:

类型 typeof返回的字符串
Number "number"
String "string"
Boolean "boolean"
Object "object"
Function "function"
Undefined "undefined"
Null "object"

void运算符

void运算符指定要求值的表达式,但不返回值。

下面的代码创建一个超文本链接,当用户单击该链接时,它不会执行任何操作。

<a href="javascript:void(0)">Click here to do nothing</a>

JavaScript关系运算符

关系运算符比较其操作数,并根据比较是否为真返回一个布尔值。

JavaScript中有两个关系运算符:

描述 描述
in 如果指定的属性在指定的对象中,则返回true
instanceof 如果对象是对象类型的示例,则返回true

in运算符

如果指定的属性在指定的对象中,in运算符返回true。

var user = {firstName:"Vishal"age:"22"color:"blue"};

"firstName" in user;  // returns true
"age" in user;// returns true
"Food" in user;   // returns false

将in运算符与Array数组一起使用时,必须指定索引号,而不是该索引处的值。

var fruits = ["Apple", "Mango", "Banana"];

var item1 = 0 in fruits;  // returns true
var item2 = 1 in fruits;  // returns true
var item3 = 2 in fruits;  // returns true
var item4 = 3 in fruits;  // returns false

instanceof运算符

如果指定的对象属于指定的对象类型,则instanceof运算符将返回true。

需要在运行时判断对象类型时,请使用instanceof运算符。

var myObj = new Date();
if (myObj instanceof Date) {
   // statements to execute
}
 
评论
列表