早安安~午安安~
今天又是在清大讀書的一個零碎的時間
最近多工到一天要處理好多的事情-學習、工作、讀書、運動、煮飯、讀經。
應該要來好好學習如何把效率提升了!
希望大家在生活的忙碌時刻,也不要忘記照顧自己的身心嘿(開啟老媽模式XD)
那今天要提到的是昨天說的短路特性
這塊說真的我到現在才聽過這名詞~
前情提要&重要事項
短路求值(Short-circuit evaluation)
邏輯運算中一種有效的技術,它能夠提高效率,避免不必要的計算,並且在某些情況下防止錯誤。
透過使用 && 和 || 運算符的短路特性,可以使代碼更為簡潔和健壯。
看了一些文章後,我的解讀是這個求值的部分,取得了原本要寫的if判斷式
||設定預設值
|| 在處理任何類型的值時,當它遇到第一個真值時,它會立即返回那個值,而不再評估後面的值。
let a = true;
let b = false;
console.log(a || b); //印出true
//解釋:因為 a 是 true,所以 b 不會被評估,結果為 true。
let a =false;
let b =true;
console.log(a || b)//印出true
//解釋:因為左邊是 false(或其他假值),則會印出右邊的-true
看了一些文章後,才發現真的比起還要寫if判斷式,我們還是寫||來得快唷~
let a = true;
let b = false;
if (a || b) {
console.log('至少有一個為 true');//印出:至少有一個為 true
}
&& 檢查物件屬性是否存在
&&的規則是如果第一個條件成立,才會繼續執行後面的程式碼~
let obj = {
name: 'Alice'
};
// 檢查 obj.name 是否存在,如果存在則執行後面的操作
obj.name && console.log('Name exists:', obj.name);//印出Name exists: Alice
let obj = {
age: 25
};
obj.age && console.log('Age exists:', obj.age);
//印出Age exists: 25//obj.age 是真值,所以會執行console.log
?? (空值合併運算子)
處理遇到null 和 undefined的情況!那這個運算子的作用就是返回第一個非null跟undefined的值。
let result = value1 ?? value2;
如果 value1 不是 null 或 undefined,則 result 的值是 value1。
否則,result 的值是 value2。
let userInput = null;
let defaultInput = 'Default Value';
let finalValue = userInput ?? defaultInput;
console.log(finalValue); // 輸出 'Default Value'
userInput 是 null,所以 ?? 運算符會選擇 defaultInput 的值。
條件?值1:值2(三元一次運算式)
condition ? exprIfTrue : exprIfFalse
一個條件後面會跟著一個問號 (?),如果條件是 truthy,在冒號(:)前的表達式會被執行(exprIfTrue執行),如果條件是 falsy,在冒號後面的表達式會被執行(exprIfFalse執行)
let age = 21;
let status = age >= 18 ? 'Adult' : 'Minor';
console.log(status); // 輸出 'Adult'
age >= 18 的結果為 true
因此,status 的值是 'Adult'
我是超級新手,若有任何建議或是錯誤的部分,歡迎底下留言唷thanks
我們下篇文章見掰掰~
對自己多用點心,日益努力,而後風生水起。盡情玩耍,盡情學習,盡情熱愛,盡情討厭,在需要的時候釋放善意,在必要的時候展現強硬,把這不得不過完的一生,變成值得慶賀的一生。