Sibainu Relax Room

愛犬の柴犬とともに過ごす部屋

JavaScript eval()の数値変換について

今日は、2回目の登場だ。今日の散歩は雪が降って気持ちがいいという顔している柴犬です。

柴犬に積もりそうなくらい降りました。

概要

WEBでいろいろ調べるためコードをみていたところ、eval() を数値変換に使っているHPに出会いました。

こんな感じだったと思います。

var a = "2";
var b = eval(a)+1

これでいいのか確かめることにしましたので記録します。

確認1

var a = "2";
var b = eval(a)+1

これはいいようです。

確認2

var a = null;
var b = eval(a)+1

こうなりましたか。

確認3

var a = undefined;
var b = eval(a)+1

そうですね。

確認4

var a = NaN;
var b = eval(a)+1;

こうなりました。

確認5

var a = "2";
var b = parseInt(a)+1;

確認1と同じ結果になりました。

確認6

var a = null;
var b = parseInt(a)+1;

確認2と違った結果になりました。

確認7

var a = undefined;
var b = parseInt(a)+1;

確認3と同じ結果です。

確認8

var a = NaN;
var a = parseInt(a)+1;

確認4と同じ結果です。

結論

eval()を数値変換した場合、parseInt()とは null の変換で結果が異なりました。数値変換は parseInt() で変換した方がよさそうです。

この件はここまでとします。