JavaScript で頻出する undefined
と null
について語ります。
とても有名な Wordle というゲームがあります。隠された 5 文字の英単語をヒントを手がかりに見つけるゲームなのですが、最大 6 回までしか入力が許されていないため、4 回目を超えたあたりから緊張感につつまれるよく出来たゲームです。
以前 YouTube で「Wordle ソルバーを30分弱で作ってみた【JavaScript実況プログラミング】」という動画を発表し、そこの冒頭でゲームの解説をしておりますので、ご存知のない方はご覧になって頂ければと思います。
さて、上記の動画で簡単なソルバーを作ったのですが、それは単純なアルゴリズムで生成されたソルバーであり、Hard モードを 6 回以内に確実に解くことは出来ません。そこで上記の録画の後、必ず 6 回以内で解けるソルバーを作成しました。この記事では、ハードモード対応の 6 回以内で確実に解けるソルバーをどのように作ったかについてご紹介します。
なおソルバーはこちらから遊べます。実際に触って楽しんでみてください。
先日、次のような JavaScript クイズを Twitter で出しました。
// JavaScript quiz: 出力は?
— Takuo Kihira (@tkihira) August 15, 2022
const a = [];
{
for(let i = 0; i < 10; i++) {
a[i] = () => console.log(i);
}
}
a[3]();
{
let i;
for(i = 0; i < 10; i++) {
a[i] = () => console.log(i);
}
}
a[3]();
{
for(let i = 0; i < 10;) {
a[i] = () => console.log(i);
i++;
}
}
a[3]();
答えは 3, 10, 4 なのですが、for 文の let 初期化専用の例外処理がない場合は 10, 10, 10 になるべき問題です。クロージャーをしっかり理解していれば(そして例外処理を知らなければ)、答えは全部 10 になるはずなのです。今回この記事では、なぜ 10 になるべきなのか、そしてなぜ 10 にならないのか、について解説します。
昨日、ツイッターで次のような JavaScript クイズを出しました。
久しぶりの JavaScript クイズ!
— Takuo Kihira (@tkihira) July 31, 2022
function hello(x) {
if(typeof x === 'undefined') {
alert(x.f());
}
}
この hello 関数で "Hello, World!" のアラートを表示させることが出来るか?
このブログ記事では、この問題について解説します。
Twitter では告知しましたが、ちょうど 1 ヶ月前の 7 月 1 日に、YouTube チャンネル「ニコニコプログラミング」を開設しました。まさかの YouTuber デビューです。
Description のところにも書いているように
プログラミングの楽しさを伝えるために、プログラミングにまつわる様々なことをしています。短い時間でプログラミングの実況をしながらゲームを作り上げる実況プログラミングシリーズをメインに展開していきます。
というチャンネルです。