
JavaScript 的 运算符 是有 " 优先级 " 的 , " 运算符优先级 " 决定 一个表达式中 多个 运算符的 执行顺序 ;
一个 表达式 中 , 有多个运算符 , " 运算符优先级 " 决定了 哪个 运算符 首先与操作数结合 ;
小括号 优先级最高 , 可以直接改变 运算符 的 结合性 ;
一元运算符 的 优先级 仅次于 小括号 ;
下面的 运算符 优先级 按照 从上到下 顺序 , 优先级由高到低 ;
JavaScript 中的 运算符 优先级顺序 :
() 可以直接 用于改变 正常的 运算符 的 优先级顺序 ;++ : 前置递增 / 后置递增 ;-- : 前置递减 / 后置递减 ;+-!*/%+-<<>>>>><><=>===!====!==&& 操作符优先级 高于 || 操作符 ; &&||=+=-=*=/=%=<<=>>=,在下面的代码中 , 分析代码中表达式的 运算符优先级 ;
var exp = 2 > 3 || "Tom" == "Jerry" && !(2 * 3 == 6) && false
console.log(exp)分析 上述 表达式 2 > 3 || "Tom" == "Jerry" && !(2 * 3 == 6) && false 中的 运算符优先级 :
(2 * 3 == 6) 中的运算符是结合在一起进行运算的 ; 2 * 3 == 6 中 , 算术运算符 * 优先级高于 相等运算符 == 优先级 , 先计算 乘法 得到 6 , 然后计算 == 是否相等 , 最终得到 true 值 ;2 > 3 || "Tom" == "Jerry" && !(true) && false! 高于 除 小括号 意外的其它运算符 , 然后计算该运算 , !true 得到 false ;2 > 3 || "Tom" == "Jerry" && false && false2 > 3 中的 > 优先级 是目前最高的 , 计算得到结果 false ;false || "Tom" == "Jerry" && false && false"Tom" == "Jerry" 中的 == 运算符 目前优先级最高 , 计算得到结果 false ;false || false && false && false&& 运算符 优先级 高于 逻辑或 || 运算符 , 先计算 && 运算 , 有多个 && 运算 , 从左到右结合即可 ;false || false|| 操作 , 得到 false 结果 ;完整代码如下 :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<!-- 设置 meta 视口标签 -->
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no,maximum-scale=1.0,minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>JavaScript</title>
<style></style>
<script>
// 运算符优先级
var exp = 2 > 3 || "Tom" == "Jerry" && !(2 * 3 == 6) && false
console.log(exp)
</script>
</head>
<body>
</body>
</html>执行结果 :
