問題タブ [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 - 「巻き上げられた」JavaScript 変数
次の表示が最後に向かって「持ち上げられた」理由を完全には理解していません。
任意のポインタをいただければ幸いです。
javascript - 巻き上げを「使用」したい場合、通常の関数宣言の代わりに関数式を使用することの欠点はありますか?
私は JavaScript を学んでおり、巻き上げについては十分に理解できているように感じます。
吊るすのはいいの?可能であれば、次を使用して変数を宣言する必要がありますか
または、代わりにこれを使用する必要がありますか?
いつ持ち上げるべきで、いつ持ち上げるべきではないのですか? それともまったく問題ですか?
javascript - コールバック内で var を宣言するとパラメータが未定義になるのはなぜですか? (巻き上げ)
var bar = "derp" の宣言が、事前にアクセスされるパラメーターを定義していないのはなぜですか?
javascript - Javascript スコープ/巻き上げまたは約束/延期?
Jquery 各ループ内で API への外部 AJAX 呼び出しを実行しようとしています。
ここに私がこれまでに持っているコードがあります。
getStylesInfo() は、これに似たものを返します。車のモデルに関する情報を含むオブジェクトの配列。
sampleReturnedData をループして、getNavigationInfo() 関数を使用した別の AJAX 呼び出しで各 ID をパラメーターとして使用しようとしています。
結果をループしてチェックしたい。true の場合は、オブジェクト全体をホルダー配列にプッシュします。
問題は、関数の外側の console.log(holder) が空の配列を返すことです。if ステートメント内の console.log(holder) は正しく機能します。
これがスコープ/巻き上げの問題なのか、それとも deferred の使用方法の問題なのかわかりません。
私はこの質問を読みましたが、多くの人が気に入っています。彼らはどちらかを使用することを提案します
または、コードをより適切に書き直す。コンソールデバッガーを何度も試して使用しました。falseに設定したくありません。正確に何が起こっているのかわかりません。
この記事を介して巻き上げについても読みました。
それは deferred に関係していると思いますが、それを理解するのに十分な JS の知識がありません。
ありがとう!
javascript - JavaScript グローバル変数巻き上げの問題
これが私の基本的な問題です...
簡単な解決策があるに違いないことは知っていますが、かなり行き詰まっています...
javascript - 誰かがこれらの関数の定義と巻き上げについて説明できますか?
次の 3 つの例で何が起こっているのか説明してもらえますか? 私の考えは、最初の例でbar
あり、実行されない (関数宣言に過ぎない) ため、foo
実行されると、出力はundefined
? 2 番目の例でbar
は、値 3 が返されるように が実行されます。3 番目の例では、なぜ 8 が生成されるのかわかりません。
javascript - グローバルに定義された変数が定義されていないのはなぜですか?
ここには単純な関数とグローバル変数があります。
なぜ
myname
undefined
文字列ではなく文字列なの"global"
ですか?
その関数のスコープ外で定義された外部変数を参照することはできませんか? そして、このグローバル変数では...
undefined
グローバル変数から取得しないようにするには、どうすればこれを修正できますか?
javascript - すぐに呼び出される関数に対して const 変数が巻き上げられない
新しい ECMASCRIPT-6 constキーワードをいじっていました。キーワードの 1 つの特定の動作がわかりませんでした。
2つの機能があるとしましょう
最初のケース
そして 2番目のケース
最初のケースの出力は(理由がわかりませんでした)
ReferenceError: 初期化前にレキシカル宣言 `_t' にアクセスできません
2番目のケースでは、出力は(罰金)です
未定義
2 番目のケースの出力は期待どおりですが、最初のケースの結果がエラーをスローする理由がわかりません。変数が巻き上げられていないことは、エラーから推測できます。しかし、なぜ?ブロック スコープを使用するhereを見つけました。このスコーピングと何か関係がありますか?const
Firefox Developer Version コンソールを使用してテストを実行しています。
javascript - 'use strict' が関数スコープで巻き上げを停止しない
私の問題はここにあります 私はJavaScriptを学んでいますが、プログラミングはまったく新しいものではありません。私は巻き上げを理解していますが、厳密モードでは、6 が宣言されていない変数に割り当てられているか、document.getElement... が割り当てられているときにエラーが発生してキャッチされるべきではありません。これはエラーを生成しないため、私の診断は巻き上げですまだ進行中です..これは好きではなく、strict を使用して取り除きたいと考えています。Chrome バージョン 42.0.2311.152 m をブラウザとして使用