我想知道是否可以像下面的例子那樣直接訪問條件的值。使用if/else中的條件值
var a = ["pear", "kiwi", "orange", "apple"]
if(a.indexOf("orange") !== -1){
console.log(this) //as a.indexOf("orange") has been evaluated already above this prints 2
}
這也會使三元運營商少bloaty
var a = ["pear", "kiwi", "orange", "apple"]
var b = ((a.indexOf("orange") !== -1) ? this : '') //"this" equals 2
感謝
編輯: 清除這個問題了任何未來的訪客。 基本上這個問題是關於檢索在if/else語句中評估的結果值。在
var a = ["pear", "kiwi", "orange", "apple"]
if(a.indexOf("orange") !== -1){ //is basically if(2 !== -1)
console.log(this) //would then be "2" from the already evaluted a.indexOf from above
}
需要注意的是什麼你問的是*不*訪問條件的值。條件是「真」或「假」。你想訪問條件中的一個子表達式的值(特別是'indexOf()'返回的)。 – Barmar
@Barmar因此,爲什麼這個問題似乎困惑了每個人。詢問條件的價值是有道理的,理論上這可以起作用 – aw04
這就是爲什麼人們應該閱讀問題中的所有細節,包括代碼中的註釋,以便理解它。人們並不總是很擅長找到合適的單詞。 – Barmar