ES6 陣列解構:不可預見的行為
在ES6 中,陣列的解構賦值可能會導致意外的結果,讓程式設計師感到困惑。下面的程式碼說明了一個這樣的實例:
let a, b, c
[a, b] = ['A', 'B']
[b, c] = ['BB', 'C']
console.log(`a=${a} b=${b} c=${c}`)
預期輸出:
a=A b=BB c =C
實際輸出:
a=BB b=C c=undefined
解釋:
相反正如預期的那樣,此程式碼不會產生所需的輸出。相反,它交換 b 和 c 的值,使 c 未定義。要理解為什麼會發生這種情況,我們需要仔細檢查程式碼。
解析與評估:
在 JavaScript 中,分號是可選的分隔語句。如果沒有明確的分號,程式碼將被解析為單一語句:
let a = undefined, b = undefined, c = undefined;
[a, b] = (['A', 'B']
[(b, c)] = ['BB', 'C']);
console.log(`a=${a} b=${b} c=${c}`);
語句細分:
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3