今回は javascript の問題を出してみようと思います。
恐らく知っておいた方が良い挙動に関して
問題形式で出題します。
対戦よろしくお願いします。
問題1: 次のコードは何が出力されるでしょう?
let array1 = [1, 2, 3];
let array2 = [4, 5, 6];
let str = "";
for(let i in array1) {
for(let i in array2) {
str += "" + i;
}
}
console.log(str);
回答1: エラーになる
回答2: 012012012
回答3: 123123123
回答4: 456456456
正解はこちら: https://wandbox.org/permlink/gr1Gy9FQID4nJFyA
問題2: 次のコードは overflow... が出力されるでしょうか?
let targetNumber = 2;
for(let i = 0; i < 1000; i++) {
targetNumber *= targetNumber;
if(targetNumber < 0) {
console.log("overflow...");
break;
}
}
console.log("end");
回答1: overflow... が出力される
回答2: overflow... が出力されない
正解はこちら: https://wandbox.org/permlink/vhBSSeHn60TBQL2e
以上 javascript の問題を出してみました。
問題1 は同じブロック内で
let i を 2 回宣言できるパターンを知っておくと
変数ミスはしていないだろうという
誤った判断を下さないで済むかもしれないため
出題しました。
また私の過去の記事で誤った知識を
植え付けてしまった事が私にあるため
この記事で微量でも挽回できれば
嬉しいという願望もあります。
問題 2 は巨大数の存在を知っておくと
プログラミングの途中で存在に気付いて
無駄な書き換え作業を抑えるきっかけになると思い
出題しました。
これらの知識が無い事で
無駄な作業を増やす事が減ると
私も嬉しいです。
閲覧ありがとうございました。