JavaScript 表达式和运算符:对编写有效代码至关重要
在 JavaScript 中,表达式和运算符是构成代码逻辑的基本组成部分。理解它们对于编写有效的 JavaScript 代码至关重要。
1. 表达式(Expression)
表达式是一个可以求值的代码片段,最终会计算出一个值。表达式可以是常量、变量、函数调用或者运算符等组合。
常见的表达式类型:
- 字面量表达式:直接包含常量值。
10 // 数字字面量表达式
"hello" // 字符串字面量表达式
- 变量表达式:包含变量的表达式。
let x = 5;
x // 变量表达式
- 算数表达式:通过运算符将不同的值组合起来的表达式。
let sum = 3 + 5; // 算数表达式,结果为 8
- 函数调用表达式:
Math.max(3, 5) // 函数调用表达式,结果为 5
2. 运算符(Operator)
运算符是用于执行操作的符号。JavaScript 提供了多种运算符,用于进行不同类型的运算。
常见的运算符类型:
2.1 算数运算符(Arithmetic Operators)
用于执行数字计算:
- 加法
+:两个操作数相加。
let sum = 5 + 3; // 结果为 8
- 减法
-:第一个操作数减去第二个操作数。
let difference = 5 - 3; // 结果为 2
- 乘法
*:两个操作数相乘。
let product = 5 * 3; // 结果为 15
- 除法
/:第一个操作数除以第二个操作数。
let quotient = 6 / 3; // 结果为 2
- 求余
%:返回除法运算后的余数。
let remainder = 5 % 2; // 结果为 1
- 指数
**:求第一个操作数的第二个操作数次方。
let power = 2 ** 3; // 结果为 8
2.2 赋值运算符(Assignment Operators)
用于将一个值赋给变量:
- 赋值
=:将右边的值赋给左边的变量。
let x = 5; // 结果 x = 5
- 加赋值
+=:将右边的值加到左边的变量中。
let x = 5;
x += 3; // x 变为 8
- 减赋值
-=:将右边的值从左边的变量中减去。
let x = 5;
x -= 3; // x 变为 2
- 乘赋值
*=:
let x = 5;
x *= 3; // x 变为 15
- 除赋值
/=:
let x = 5;
x /= 3; // x 变为 1.6666...
- 求余赋值
%=:
let x = 5;
x %= 3; // x 变为 2
2.3 比较运算符(Comparison Operators)
用于比较两个值的关系,返回布尔值(true 或 false):
- 等于
==:检查两个值是否相等(不考虑类型)。
5 == "5"; // true,忽略类型
- 全等
===:检查两个值是否相等,并且类型相同。
5 === "5"; // false,类型不同
- 不等于
!=:检查两个值是否不相等(不考虑类型)。
5 != 3; // true
- 不全等
!==:检查两个值是否不相等,或者类型不同。
5 !== "5"; // true,类型不同
- 大于
>:
5 > 3; // true
- 小于
<:
5 < 3; // false
- 大于或等于
>=:
5 >= 3; // true
- 小于或等于
<=:
5 <= 3; // false
2.4 逻辑运算符(Logical Operators)
用于布尔值的操作:
- 与
&&:如果两个操作数都为true,则返回true。
true && false; // false
- 或
||:如果两个操作数中有一个为true,则返回true。
true || false; // true
- 非
!:反转布尔值,true变false,false变true。
!true; // false
2.5 条件(三元)运算符(Conditional (Ternary) Operator)
用于根据条件返回不同的值:
- 语法:
condition ? exprIfTrue : exprIfFalse
- 示例:
let age = 18;
let isAdult = age >= 18 ? "Yes" : "No"; // "Yes"
2.6 类型运算符(Type Operators)
用于检查值的数据类型:
- typeof:返回操作数的数据类型(字符串)。
typeof "hello"; // "string"
typeof 42; // "number"
typeof true; // "boolean"
typeof undefined; // "undefined"
- instanceof:检查对象是否是某个类的实例。
let arr = [];
arr instanceof Array; // true
2.7 其他运算符
- 删除
delete:删除对象的属性或数组的元素。
let obj = { name: "John" };
delete obj.name; // true,删除成功
- in:检查对象是否包含指定的属性。
let obj = { name: "John" };
"name" in obj; // true
3. 表达式优先级
在 JavaScript 中,不同的运算符有不同的优先级。优先级决定了在一个复杂的表达式中,哪些运算符会先执行。常见的优先级从高到低排列:
- 1:括号
() - 2:自增自减
++,-- - 3:算数运算符
*,/,% - 4:加法与减法
+,- - 5:比较运算符
==,===,>,<,>=,<= - 6:逻辑运算符
&&,||
可以使用括号来改变运算顺序,确保表达式按预期顺序求值。
总结
JavaScript 中的运算符和表达式是编程中非常重要的组成部分。熟悉常用运算符和表达式的作用、语法、优先级,可以帮助你编写更高效、可读性更好的代码。在实际开发中,正确使用这些运算符可以提高代码的简洁性和性能。
更多详细内容请关注其他相关文章。