【JavaScript】undefinedに数値を加算するとどうなる?NaNが返される仕組みを解説
JavaScriptでは、undefined の値に対して数値を加算しようとすると、結果は必ず NaN になります。NaN は「Not a Number(数値ではない)」を意味する特殊な値で、数値演算が正しく行えなかったことを示します。
以下に、代表的な2つのケースを紹介します。
ケース1:直接 undefined を加算する
リテラルとして undefined を直接加算した場合のコード例です。
var anyVar = 10 + undefined;
console.log(anyVar); // 結果:NaN
ケース2:値が代入されていない変数を加算する
変数を宣言しても値を代入しない場合、その変数は自動的に undefined になります。この状態で加算を行うと、やはり NaN が返されます。
var anyVar1 = 10;
var anyVar2; // 値を代入していないため undefined
var result = anyVar1 + anyVar2;
console.log(result); // 結果:NaN
実際の実行例
ケース1の実行結果
コンソールで以下のように実行してみましょう。
> var result = 10 + undefined;
> console.log(result);
出力結果:
NaN
ケース2の実行結果
次に、値が未定義の変数を使った場合の実行例です。
> var value;
> var value1 = 10;
> var result = value1 + value;
> result
出力結果:
NaN
なぜ NaN になるのか?
undefined を数値として評価すると NaN に変換されるためです。これは Number(undefined) が NaN を返すためで、加算処理の過程で JavaScript エンジンが暗黙的に型変換を行う際に発生します。
なお、null を加算した場合とは挙動が異なり、10 + null の結果は 10 になります。null は数値変換されると 0 とみなされるためです。この違いを理解しておくと、予期しないバグの防止につながります。
-
Skypeが遅い・重いときの原因と対処法を徹底解説
Skypeは今や世界中で利用されている定番のコミュニケーションツールです。Webベースの通信プラットフォームが数多く登場しているにもかかわらず、Skypeはリモートワーカーの多くにとって依然として第一の選択肢であり続けています。その理由は、シンプルで使いやすい操作性にあります。 しかし、どんなアプリにもトラブルはつきものです。「Skypeが遅い」という問題も、このプラットフォームで起こりうる典型的なトラブルの一つです。 通話中に相手の映像が突然消えてしまったり、Skypeがフリーズして奇妙な音声や映像が流れたりすることもあります。頻繁に利用している方なら、ビデオ通話で相手の画面が乱れる様子を目
-
iPhoneで番号をブロックするとどうなる?着信拒否の仕組みと設定方法を徹底解説
しつこく電話をかけてきたり、迷惑なメッセージを送りつけてくる相手に悩まされていませんか?その相手をブロックすれば解決しそうですが、「本当に連絡が届かなくなるの?」と不安に感じる方も多いはずです。 この記事では、iPhoneやその他のAppleデバイスで番号をブロックしたときに何が起こるのかを詳しく解説します。 その前に、まずはiPhoneで連絡先や電話番号をブロックする手順を見ていきましょう。 iPhoneで電話番号をブロックする方法 iPhoneで相手をブロックする方法は主に5つあります。「電話」アプリ、「メッセージ」アプリ、FaceTime、「メール」アプリからブロックできるほ