開発環境
- macOS Catalina - Apple (OS)
- Emacs (Text Editor)
- Windows 10 Pro (OS)
- Visual Studio Code (Text Editor)
- JavaScript (プログラミング言語)
- Node.js v12.16.2(処理系)
ちょっと気になったから確認してみた。if( !!!!!!!!!!!!!!!!!! true) alert("!って何個いれられるのかな?");
— gomiryo (@gomiryo) April 21, 2020
コード
let i = 1;
try {
while (true) {
let a = eval("!".repeat(i) + "true");
i += 1;
}
} catch (e) {
console.log(i, e);
}
入出力結果(Zsh、PowerShell、Terminal)
% node sample.js
15636 RangeError: Maximum call stack size exceeded
at Object.<anonymous> (/…/sample.js:4:36)
at Module._compile (internal/modules/cjs/loader.js:1156:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1176:10)
at Module.load (internal/modules/cjs/loader.js:1000:32)
at Function.Module._load (internal/modules/cjs/loader.js:899:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)
at internal/main/run_main_module.js:18:47
%
ということで、15635個まで大丈夫みたい。ただ、上記のコードはeval関数を使用した場合だから、ツイートの場合のif文で使用する場合とは結果が違ったりするのかも。
0 コメント:
コメントを投稿