我讀到JavaScript中的雙管道檢查變量是否是虛假的,而undefined
是JavaScript中的一個虛假值,例如,JavaScript中的雙重管道(||)拋出錯誤而不是評估爲錯誤
It means that if the value is falsey (e.g. 0, "", null, undefined (see also All falsey values in JavaScript)), it will be treated as false; otherwise it's treated as true.
所以,我想這一點,並發現未定義確實沒有得到評估爲falsy而是拋出一個錯誤:
let elemContent = document.getElementById('content');
let a = null;
let b = 2;
elemContent.innerHTML += a || 'ok'; // "ok"
elemContent.innerHTML += b || 'ok'; // "2"
elemContent.innerHTML += whatever || 'ok'; // "ERROR: whatever is not defined"
是undefined
在JavaScript中falsy值或不,或者如何理解這個矛盾?
用'window.whatever'替換'whatever'或聲明'whatever'。 –
爲什麼沒有人指出雙管實際上是「Or Else」。這個陳述意味着什麼:評估第一個條件,如果第一個條件不是假,返回值或者 - 否則評估第二個條件並返回它的值。像任何條件一樣,它是危險的,因爲0的有效值被評估爲假,所以更好地希望a或b不會爲零或第二個條件將被評估。 –