在巴貝爾的網站,我發現下面的演示中解構範圍:ES6故障弱化解構
// Fail-soft destructuring
var [a] = [];
a === undefined;
transpiling這片與巴貝爾代碼後,我得到了在ES5以下結果:
"use strict";
var _ref = [];
var a = _ref[0];
什麼是fail-soft解構用於,以及transpiled語法背後的邏輯是什麼?編輯:爲什麼Babel以這種方式來處理ES6代碼,而不是僅僅將undefined
賦值給變量?
編輯: 我看到了,我想它只是將變量值放到undefined
而不是拋出一個錯誤。儘管如此,仍然有一些關於轉譯邏輯的疑問。
爲什麼要數組的內容影響轉譯? – zeroflagL
@zeroflagL沒有任何理由,我在腦子裏想着一個完全錯誤的方向,認爲這個軟解構的東西有些複雜/特殊,忘記了我們只是分配一個數組 - 哼。沒有看到這只是這個簡單的事情。 – Trace