陳述式:不會回傳結果。
表達式:由運算子組成,會回傳結果。
上圖是MDN給出的賦值運算子,可以理解為把右邊的運算結果給左邊的一個過程,加減乘除法想必大家都很熟了,這邊便不再撰述。
接下來是比較運算子,一樣用MDN給的表格,如下圖 :
除了==之外,其他都蠻常用的,會來條件判斷用
再來是算數運算子
+號和取餘數這個蠻實用的,+號會強制轉換型別變成數字
邏輯運算子
一樣是條件判斷的,非常實用,用!!可以強制傳換成布林值,而且是正確的布林值,因為!會給出相反的布林值。
邏輯運算子中&&和 | |可以用短路( short-circuiting ),&&( and ) 是回傳第一個假值,| | (or) 是回傳第一個真值,還有一個是ES2020推出的?? ( nullish assignment operator ),只要 ??左邊不為 null 或 undefined的話 ,會回傳左邊的值,不然就會回傳右邊的值。
三元運算子,可以當作if / else 的簡潔作法,舉個例子 :
上方的程式碼是說,我今天設一個變數叫做b,b可以想成一個容器,然後後面是運算的過程,1+2===3 用到嚴格等於來判斷,兩邊的類別需要完全一樣,1+2 跟3都是數字( number )而且也都是3, 都一樣就會回傳 true 這個布林值,反之,便回傳 false。
三元運算子 ? 後面就是條件成就或符合就會回傳的值 , 在這個例子中,因為1+2=3,因此回傳的值就是 ‘yes’ 字串,再把 ‘yes’ 字串放進 b 這個盒子中。
如果條件不成就或者不符合,就會回傳 : 分號後面的值放進 b 這個盒子。