[解決済み] 変数」は定義される前に使用されていた
2022-03-04 08:10:29
質問
ある変数が定義されているかどうかをチェックし、明示的に定義されていない場合は、その変数を定義することにしています。
if ( typeof(aVariable) == 'undefined' ) {
var aVariable = value;
}
変数が定義されていないため、JSLintは定義される前に使用されていると警告しています。
これを克服するにはどうしたらよいでしょうか。
このような変数を明示的に定義できるようにしたいのですが。
<script>
var aVariable = value;
</script>
<script src="myScript.js"></script>
そのため、このスクリプトを組み込む人は誰でもいくつかのプロパティをカスタマイズすることができます。そして、このロジックはすでに何百ものウェブサイトで使われているので、残念ながら私は変更することができません。
回答/解決策は下にスクロールしてください。なぜなら、私は自分自身の質問に答えたので、Stack Overflowはそれを表示しないからです。お見逃しなく。
解決方法は?
JSLintのメーリングリストにもっと納得のいく回答がありましたので、Boldewynさんには申し訳ないですが :)
解決策1
IEでは、スクリプトレベル(ファイル単位、またはスクリプトブロック単位)で var"宣言は、解析段階(実行前)において、リセットされます。 がすでに存在する場合は、その変数の値。
だから、単純にこうするのがベターでしょう。
/*global foo: true */
if (typeof foo === "undefined") {
foo = "some value";
}
var" を宣言せず、単に foo を代入することで、foo は自動的に グローバルスコープ
解決策2(特殊なケース)
明示的に設定された変数が0またはfalseでない場合
var foo = foo || "some value";
関連
-
[解決済み】Javascript:getElementById対getElementsById(両方が別のページで動作する)。
-
[解決済み] [Solved] Uncaught TypeError: nullのプロパティ 'appendChild' を読み取ることができない。
-
[解決済み] 変数が「未定義」または「NULL」であるかどうかを判断するにはどうすればよいですか?
-
[解決済み] JavaScriptで変数が文字列かどうかをチェックする
-
[解決済み] JSONPとは何か、なぜ作られたのか?
-
[解決済み] JavaScriptで変数が存在するか(定義されているか/初期化されているか)をチェックする
-
[解決済み] アップロード前に画像をプレビューする
-
[解決済み】JavaScriptの比較では、どちらの等号演算子(== vs ===)を使うべきですか?
-
[解決済み】関数の前のエクスクラメーションマークは何をするのですか?
-
[解決済み】JavaScriptで定義されていない変数を確認する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】このエラーの原因は何ですか - "Fatal error: ローカルgruntを見つけることができません"
-
[解決済み】document.getElementByIDは関数ではありません。
-
[解決済み】JavaScriptのisset()に相当するもの
-
[解決済み】コンソールがUnterminated JSX contentsエラーを投げる【終了しました
-
[解決済み】SyntaxError: 'import' と 'export' は 'sourceType: module' とだけ表示されるかもしれない - Gulp
-
[解決済み] [Solved] Uncaught TypeError: nullのプロパティ 'appendChild' を読み取ることができない。
-
[解決済み】XMLパースエラー:ルート要素が見つからない コンソールの場所 FF
-
[解決済み】Vueのテンプレートまたはレンダー関数が定義されていない 私はどちらも使っていないのですが?
-
[解決済み】Uncaught ReferenceError。Firebase は定義されていません。
-
[解決済み】Vueが定義されていない