EP.16 RE:從零開始的學習 JS 生活-第十六日之優先性與相依性

前言

轉生第十六日,這一篇將會來介紹運算子的優先性與相依性。

優先性

在運算子中都有一個優先性可以參考,例如說我們在計算數學的時候都會有一個優先順序,例如先乘除後加減的概念,在 JavaScript 也是一樣類似的觀念,因為實際開發的時候,運算子通常不會只有一個,通常都會是複數以上,所以優先性的觀念就格外的重要。

那麼我們該如何知道優先性呢?後面我會補文件,但先來講幾個常用的運算子的優先性就好 ↓

數字越大越優先執行

相依性

相依性只有在優先性都相同時,才會啟動的東西,首先來個經典範例:

1
1 < 2 < 3; // true

依照我們人腦來判斷 1 是小於 2,並且 2 小於 3 ,所以這是沒有問題的,但是如果是這樣呢?

1
3 < 2 < 1;

那這個答案會是 true,此時一定會很疑惑,3 怎麼會小於 2,那 2 又怎麼會小於 1 呢?

這個問題出在相依性,前面有講到當優先性等級都相同時,JavaScript 就會改以相依性做判斷,首先大於的相依性是從左至右,所以會先執行 3 < 23 < 2false,畢竟 3 並沒有小於 2,所以此時這一段程式碼就會變成這樣:

1
false < 1;

那這邊重點來了,由於 JavaScript 會自動轉換型別,所以 false 就會被轉換成 0,那麼就會變成 0 < 1;,所以答案才會是 true

所以當如果運算子感覺起來很奇怪的時候,就可以試著來翻一下 MDN 這一份運算子優先性與相依性的 文件)

只要知道這個相關觀念,那麼遇到優先性相同的運算子你也能夠立刻知道該執行哪一邊,只是會需要翻一下文件而已。

結尾

下一篇的 RE:從零開始的學習 JS 生活-第十七日 將會介紹 Cookie。

0%