[解決済み] JavaScriptにおける "Variable "変数
2022-09-18 09:47:10
質問
PHPでは、quot;変数"変数を持つことが可能であることは知っています。 例えば
$x = "variable";
$$x = "Hello, World!";
echo $variable; // Displays "Hello, World!"
JavaScriptで変数名を文字列で参照することは可能でしょうか?どのように行うのでしょうか?
どのように解決するのですか?
tl;dr:
を使わないでください。
eval
!
これに対する唯一の解決策はありません。アクセスすることは可能です。
いくつか
グローバル変数に動的にアクセスすることは可能です。
window
を介して動的に設定することができますが、これは関数にローカルな変数に対しては機能しません。グローバル変数で
をしない
のプロパティになります。
window
で定義された変数は
let
と
const
であり、かつ
class
のようなものです。
可変変数を使うより良い解決策がほとんど常にあります! その代わりに、あなたは データ構造 を見て、あなたの問題に適したものを選択する必要があります。
のような固定の名前がある場合は、その名前に合ったものを選ぶ必要があります。
// BAD - DON'T DO THIS!!!
var foo = 42;
var bar = 21;
var key = 'foo';
console.log(eval(key));
のプロパティとして、それらの名前/値を保存します。 オブジェクトのプロパティとして保存します。 のプロパティとして保存し ブラケット表記 を使って動的に検索します。
// GOOD
var obj = {
foo: 42,
bar: 21,
};
var key = 'foo';
console.log(obj[key]);
で ES2015+ を使えば、既存の変数に対してこれを行うのはさらに簡単です。 簡潔なプロパティ表記法 :
// GOOD
var foo = 42;
var bar = 21;
var obj = {foo, bar};
var key = 'foo';
console.log(obj[key]);
のように、連続した番号を持つ変数がある場合、その変数の値を変更することができます。
// BAD - DON'T DO THIS!!!
var foo1 = 'foo';
var foo2 = 'bar';
var foo3 = 'baz';
var index = 1;
console.log(eval('foo' + index));
であれば 配列 を使用し、対応する値にアクセスするために単にインデックスを使用します。
// GOOD
var foos = ['foo', 'bar', 'baz'];
var index = 1;
console.log(foos[index - 1]);
関連
-
[解決済み】JavaScriptで「無効な日付」のDateインスタンスを検出する
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScriptで変数が存在するか(定義されているか/初期化されているか)をチェックする
-
[解決済み] JavaScriptの変数のスコープとは何ですか?
-
[解決済み] JavaScriptで変数が配列であるかどうかを確認する方法は?
-
[解決済み] JavaScriptで2次元の配列を作成するにはどうすればよいですか?
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
-
[解決済み] なぜ "use strict "はパフォーマンスを10倍向上させるのか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] なぜJavaScriptでは!{}[true]がtrueに評価されるのですか?
-
[解決済み] モバイルWeb HTML5フレームワークの選び方【終了しました
-
[解決済み] JavaScriptで:hoverのCSSプロパティを変更する
-
[解決済み] Reactコンポーネントでthis.setStateを複数回使用するとどうなりますか?
-
[解決済み] JavaScriptでの大文字小文字を区別しない正規表現
-
[解決済み] モデルフェッチ時に1をtrueに、0をfalseに変換する方法
-
[解決済み] 各オブジェクトに?重複
-
[解決済み] Chromeのwebkitインスペクタで「Unsafe JavaScript attempt to access frame with URL...」というエラーが継続的に発生する。
-
[解決済み] Javascript の parseInt() で先頭のゼロを削除する。
-
[解決済み] これは純関数ですか?