今日 js を書いているときに問題が発生しました。大量の変数を生成する必要がある別のページがあります。ただし、変数の名前はパラメータによって異なります。
たとえば、date_1、date_2、datet_3...
を生成する必要がある場合があります (次の数値はパラメーターに基づいています)。したがって、私の関数名は var name = "test_" num;
によって生成されるはずですが、ここで問題が発生します。
関連する学習の推奨事項: JavaScript ビデオ チュートリアル
1 window[name] = " " をこのように使用できます変数を定義するには:
So var "test_" num = 100; これは明らかに間違っています。後で長兄に聞いて知りました。変数は window[name] = 100 を使用して定義できます。コードを見てください。
function create_variable(num){ var name = "test_"+num; //生成函数名 window[name] = 100; window['name'] = 200; //注意看中括号里的内容加引号和不加引号的区别 } create_variable(2); alert(test_2); // 100; alert(name); //200;
概要
ウィンドウで角括弧を使用して変数を定義する場合、角括弧内の内容は文字列である必要があります。それが変数の場合、変数を解析して特定の値を見つけます。
ドット構文との違いは、ドット構文に続く内容が定義する変数の名前です。変数かどうかなどは解析しません。例:
var name = "test" window.name = 200 alert(name); // 200 alert(test); ReferenceError: test is not defined
2 オブジェクト形式を使用します
var test = {}; for(var i = 0; i < 3; i++){ test['test_'+i]='我是字符串'+i; console.log(test['test_'+i]); //输出:我是字符串0, 我是字符串1, 我是字符串2 } console.log(test_0); //输出:ReferenceError: test_0 is not defined console.log(test['test_0']); //输出:我是字符串0
3 配列形式を使用します
var test = []; for(var i = 0; i < 3; i++){ test[i]='我是字符串'+i; console.log(test[i]); //输出:我是字符串0, 我是字符串1, 我是字符串2 } console.log(test[0]); //输出:我是字符串0
以上がJS は文字列と連結された変数の解析を定義しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。