解説
「NaN」はNot a Numberの略で、非数を表す値です。数値が期待される計算や処理で、数値が得られない場合に用いる特別な値です。
NaNはプログラミング言語によって、存在する場合も存在しない場合もあります。また挙動もプログラミング言語によって違います。
たとえばJavaScriptのNaNは、比較や一致の判定をおこなうと、数値ではないために偽(false)と見なされます。そして判定用の特別な関数が用意されています。
サンプル
「NaN」のサンプルです。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>「NaN」のサンプル</title>
<style> #output { font-size: 32px; line-height: 1.5; } </style>
</head>
<body>
<pre id="output"></pre>
<script>
window.addEventListener('DOMContentLoaded', e => {
// 出力用の関数
const print = function() {
const el = document.querySelector('#output');
el.textContent += Array.from(arguments).join(' ---> ') + '\n'
};
print('# NaNになる計算や処理');
print("123 * 'あいう'", 123 * 'あいう');
print("0 / 0", 0 / 0);
print("123 + NaN", 123 + NaN);
print("parseInt('あいう')", parseInt('あいう'));
print('\n# NaNとの比較や一致');
print("NaN > 0", NaN > 0);
print("NaN <= 0", NaN <= 0);
print("NaN > NaN", NaN > NaN);
print("NaN <= NaN", NaN <= NaN);
print("NaN === 0", NaN === 0);
print("NaN === NaN", NaN === NaN);
print("isNaN(0)", isNaN(0));
print("isNaN(NaN)", isNaN(NaN));
});
</script>
</body>
</html>
# NaNになる計算や処理
123 * 'あいう' ---> NaN
0 / 0 ---> NaN
123 + NaN ---> NaN
parseInt('あいう') ---> NaN
# NaNとの比較や一致
NaN > 0 ---> false
NaN <= 0 ---> false
NaN > NaN ---> false
NaN <= NaN ---> false
NaN === 0 ---> false
NaN === NaN ---> false
isNaN(0) ---> false
isNaN(NaN) ---> true
