优先性(Precedence)
决定运算子彼此之间被语法解析的方式,优先序较高的运算子会成为优先序较地运算子的运算元
相依性(Associativity)
相依性决定运算方向
在 MDN 参考文件中,将运算子优先性排列出来,优先性数字越大越先执行
范例:
let a = 1 * 2 + 3 * 4;
console.log(a); // 14
该范例运算子执行顺序说明,
先执行优先性 14 的 *
再执行优先性 13 的 +
,最後才执行优先性 3 的 =
,
所以会先执行 1 * 2
和 3 * 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
经典的粤式烧腊的主角之一-叉烧,是许多人喜爱的烧腊之一 这次自制叉烧酱腌了2-3天的叉烧肉,搭配烤...
基本元组 元组的结构跟串列是一样的,但元组可以更安全的保护资料,因为它的资料不会被改变,而且元组的...
语意标签 (Semantic) 语意标签是HTML5新增的标签,让网页结构更清楚,搜寻引擎可以更容易...
为了让这个教学系列可以适合持续变化的社会变化,会这最後这篇预留更新扩展的资源列表,会不停时更新在这个...
LSTM 前言 系列文章简介 大家好,我们是 AI . FREE Team - 人工智慧自由团队,这...