株式会社NextCodeのロゴ株式会社NextCode

BLOG

ブログ

2022/02/13

意外と知らない?! JavaScriptのvalueAsNumber

意外と知らないシリーズです。

JavaScriptで「value」はよく使用しますが、「valueAsNumber」はあまり使わないと思われるので記載します!

これを知っておくと色々と使えるので、この機会に是非覚えて下さい。

現状の問題

HTML

<input type="number" name="nenrei" value="">
<button type="button" onclick="number_test();" value="">ボタン</button>

JavaScript

function number_test() {
	var input = document.querySelector('input[name=nenrei]');
	alert(input.value + 10);
}

上記のHTMLとJavaScriptがあったとしましょう。

内容としては…..

ボタンを押下すると、input[type=number]にて入力された値にプラス10した値がアラートにて表示されます。

では、実際にinput[type=number]の方に 20 と値を入れてボタンを押下してみます。

結果としては「2010」と表示されました。

求めていた動きとしては、 30 と表示される事でした。

何故この様になってしまったかと言いますと、JavaScriptのinput.valueで取得した物が文字列(string型)だった為、文字列の連結として見做されてしまいました。

解決方法

現状の問題で記載したJavaScriptを下記の様に変更します。

function number_test() {
	var input = document.querySelector('input[name=nenrei]');
	alert(input.valueAsNumber + 10);
}

変更した部分は

input.value  →  input.valueAsNumber

だけです。

これで数値(double型)が取得ができ、無事に足し算を行う事ができます。

下記の様に数値型に変換するやり方もありますが、「valueAsNumber」が一番シンプルかと思います。

Number(input.value)

parseInt(input.value)

意外と知らない方が多いと思いますので、是非使ってみて下さい!!!

参考サイト

https://syncer.jp/Web/API_Interface/Reference/IDL/HTMLInputElement/valueAsNumber/

TOPへ移動
PAGE
TOP
%d人のブロガーが「いいね」をつけました。