3

重複の可能性:
JavaScriptでの変数名の最大長

JSを少し読んでいる間、私は自分自身に思いました:私の名前はどれくらい長くなることができますか?

    function myNormalFuncName () {//...}
    var myNormalVarName = 'how long?';

だから私の質問はそれがどれくらい長くなることができるかということです。これを防ぐメカニズムはありますか、それともエラーがスローされますか?それともオーバーフローかそのようなものでさえ?それともうまくいくでしょうか?

多分それは実装にもっと依存しますか?では、最近のブラウザはどうでしょうか。

熟練した開発者がこれについて知っていることを聞きたいです。

4

2 に答える 2

8

999999文字以上で問題ありません

var code = 'var ' + Array(1000000).join("a") + ' = 1;';
eval(code);
alert( window[Array(1000000).join("a")] ); //1
于 2012-11-08T20:30:00.920 に答える
0

実装(ブラウザJSエンジン)に依存します。動的型付け言語(JSなど)の一部の実装には制限がまったくない場合もあります。さらに、関数名や関数名の最大文字数ではなく、最大ファイルサイズなどに達することで制限が課せられる場合もあります。または変数名。

ただし、一般的には「長い」関数名や変数名は避けてください。実際、ほとんどの優れた圧縮ツールは、JSファイルで実行するとこれらを短くします。その理由はもちろん、サイトにアクセスするときにリソース(JSファイルなど)をブラウザーにダウンロードするために必要な帯域幅の量を減らすためです。

于 2012-11-08T20:42:54.130 に答える