【JavaScript】三元運算子

Tina
Apr 15, 2021

--

MDN上的解釋為:三元運算子接受兩個運算元作為值且一個運算元作為條件。如果條件為 true,運算子回傳值1, 否則回傳值2。

白話文一點來說就是if else的簡潔寫法,他的語法是:

條件 ? 值1 : 值2
//問號前面是條件,冒號前面是true,後面是false

比較簡單的範例如下,這段程式的條件是age是否有大於 18,如果大於,status就會等於成人,如果age沒有大於18,就等於小孩

let age = 10let status = (age >= 18) ? ‘成人’ : ‘小孩’;console.log(status) //小孩

另一種類似的範例,跟上面有點像,但這邊先創造一個 object ,再透過三元運算子去修改裡面的值

const adult = { gender: ‘male’, age: 20, driver: null};adult.driver = adult.age >=18 ? ‘Yes’ : ‘No’;console.log(adult)
//{ gender: 'male', age: 20, driver: 'Yes' }

接下來看一個稍微進階的Nested Ternary

let isFemale = false;
let isMale = true;
let price = isFemale ? 100 : isMale ? 200: 50
console.log(price);
// 200

在price的部分會先判斷的是isFemale,因為前面有宣告為false,所以會進到 判斷isMale,而前面有宣告為true,所以會看冒號前面的值=200,因此答案為200

接下來就是我會想要了解三元運算子的原因:作業會用到

而這段程式碼代表的是如果搜尋清單如果有東西(true),data就放filteredMovies,如果是空的(false),就放movies,這段當然也可以用if else來寫,但是用三元運算子就會簡單得多了

const movies = []; //電影總清單
let filteredMovies = []; //搜尋清單
const data = filteredMovies.length ? filteredMovies : movies;

參考資料:MDN

--

--

Tina
Tina

Written by Tina

前端工程師 Mix 數位行銷人

No responses yet