問題タブ [hoisting]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 関数宣言用の coffeescript マクロ
関数宣言ではなく、関数式のみであるため、Coffeescript の関数はホイストできません。関数宣言を coffeescript に追加するマクロを作成するにはどうすればよいですか?
具体的には、私は欲しい:
にコンパイルするには:
それ以外の:
javascript - Javascript スコープ チェーン巻き上げ
たとえば、JavaScriptでレキシカルスコープがどのように行われているかについて、私はちょっと混乱しています。
a
5 行目で再定義すると、 が出力されますundefined
。何故ですか?で見つけることができるにouter.VO
もかかわらず、インタプリタがトラバースアップしてチェックしないのはなぜですか?定義される前に使用されていますか?a
inner.VO
c# - C#に巻き上げが存在しないのはなぜですか?
私は日常的に Javascript と C# の両方を使用しており、Javascript を使用する際に巻き上げを考慮する必要がある場合があります。ただし、C#は(私が知っている)巻き上げを実装していないようで、その理由がわかりません。それは設計上の選択ですか、それとも静的に型付けされたすべての言語に適用されるセキュリティまたは言語の制約に似ていますか?
記録として、私はそれが C# に存在することを望んでいると言っているわけではありません。なぜそうならないのかを理解したいだけです。
編集:LINQクエリの後に変数を宣言したときに問題に気付きましたが、LINQクエリは変数宣言の後まで延期されました。
次の場合にエラーをスローします。
ではない。
javascript - これにより構文エラーが発生するのはなぜですか?
内部からの巻き上げをtry
よりよく理解しようとしていたので、次のテストケースを作成しましたが、SyntaxError
.
それは私が期待していたものではありません。
javascript - Javascript 変数と関数の巻き上げ
david sharifが JS クイズを作成しました。
私の理解では、関数が最初にホストされ、次に内部で変数が宣言されます。関数のホスト形式は次のようになります (間違っている場合は修正してください)-
typeof bar() 関数が未定義ではないのはなぜですか?
これは、関数の実行時に、最初の foo (関数である) を見つけて、検索を続行せずに幸せに戻るためです。または、他の何か?
あなたの時間を大切にしてください。
javascript - 誰かがjs変数の巻き上げとクロージャーのスタック実行を説明できますか
別のトピックを読んでいるときに、次のコードに出くわしました。
これにより、a、b、c、c、c、c が出力されます。著者が説明したように、ここでの問題は、 x var が関数の開始時に巻き上げられるため、ループで使用されたときにその値を保持しないことです。私が理解できないのは、c が 2 番目の console.log で x に 3 回割り当てられるのはなぜですか? 誰か説明できますか?