【Day14】优先性及相依性

  • 优先性(Precedence)

    决定运算子彼此之间被语法解析的方式,优先序较高的运算子会成为优先序较地运算子的运算元

  • 相依性(Associativity)

    相依性决定运算方向

MDN 参考文件中,将运算子优先性排列出来,优先性数字越大越先执行

范例:

let a = 1 * 2 + 3 * 4;
console.log(a);  // 14

该范例运算子执行顺序说明,

先执行优先性 14 的 * 再执行优先性 13 的 +,最後才执行优先性 3 的 =

所以会先执行 1 * 23 * 4,之後将回传结果相加,最後赋予到 a 变数中,

其中 *+ 的相依性是由左至右,而 = 的相依性是由右至左

console.log(1 < 2 < 3);  // true
console.log(3 > 2 > 1);  // false

该范例可能会有疑惑为何 3 > 2 > 1 会是 false

其中 >< 的相依性为由左至右

在讲解前先看 1 < 2 < 3 执行顺序,

该行程序码会先执行 1 < 2 後取得结果 true

再使用回传结果执行 true < 3

此时 true 会进行型别转换成 1

所以 true < 3 被视为 1 < 3,因此回传 true

接着我们看 3 > 2 > 1 的执行过程

首先执行 3 > 2,回传结果为 true

之後执行 true > 1,此时 true 会进行型别转换成 1

因此视为 1 > 1,所以回传 false


<<:  Day 10 - 试用期过了但要继续下去吗?

>>:  [Day5] 实作 - 主角篇2

Day28 黯然消魂饭-自制蜜汁叉烧

经典的粤式烧腊的主角之一-叉烧,是许多人喜爱的烧腊之一 这次自制叉烧酱腌了2-3天的叉烧肉,搭配烤...

[Day8]-元组(tuple)

基本元组 元组的结构跟串列是一样的,但元组可以更安全的保护资料,因为它的资料不会被改变,而且元组的...

Day8 HTML 其他常用标签

语意标签 (Semantic) 语意标签是HTML5新增的标签,让网页结构更清楚,搜寻引擎可以更容易...

30 | WordPress 区块编辑器 | 延伸相关参考资料列表:

为了让这个教学系列可以适合持续变化的社会变化,会这最後这篇预留更新扩展的资源列表,会不停时更新在这个...

【零基础成为 AI 解梦大师秘笈】Day29 - 周易解梦之人工智慧(10)

LSTM 前言 系列文章简介 大家好,我们是 AI . FREE Team - 人工智慧自由团队,这...