6
が基準エラーをスロー同じ名前の変数を使用してデフォルト値を割り当てる:変数からのJSのデフォルト引数値:なぜ識別子が異なる必要がありますか?
var a = 'adef';
var x = (a=a) => console.log(a);
x();
=> "ReferenceError: a is not defined"
しかし、これは素晴らしいです:
var other = 'otherdef';
var x = (a=other) => console.log(a);
x();
=> "otherdef"
私の仮定は、外側のスコープ内a
の値はというものでした新しいスコープに割り当てることができます。
(クロム63及びノード6で試験)I代わりvar
、及びclass
/function
の代わりに矢印機能のconst
を使用して試みたが、結果は常に同じです。
私が持っている...問題はa
が割り当て中に「掲揚」で、その割り当てが(存在しますが、定義されていません)新しい「A」を参照しているということです
はい、[パラメータスコープ](https://stackoverflow.com/q/44896829/1048572)の 'a 'は確かに[hoisted](https://stackoverflow.com/q/31219420/1048572)です。 – Bergi