HTML5のdata-*属性の型キャスト解説:文字列と数値の扱い方
data-*属性は常に文字列として返される
HTML5のカスタムdata-*属性に格納した値は、数値に見えていても、JavaScriptのdatasetインターフェース経由で取得すると必ず文字列型(string)になります。これはHTMLの仕様上、すべての属性値が文字列として保存されるためです。
属性値の型を確認するコード例
たとえば、次のようなdata-*属性が定義されているとします。
<a data-value="6.0">6.0</a> <a data-value="6.5">6.5</a>
これらの値の型を確認するには、querySelectorAllで要素を取得し、typeof演算子でチェックします。
[...document.querySelectorAll("a")].forEach(a =>
console.log("type: %s, value: %o", typeof a.dataset.value, a.dataset.value)
);実行結果は次のようになり、どちらの値も文字列型として扱われていることが分かります。
type: string, value: '6.0' type: string, value: '6.5'
文字列を数値に変換(キャスト)する方法
取得した値を数値として計算に使いたい場合は、明示的に型変換を行う必要があります。代表的な方法は以下の3つです。
1. Number()を使う
const num = Number(a.dataset.value); // 6 や 6.5 という数値になる
2. parseFloat()を使う
const num = parseFloat(a.dataset.value); // 小数を含む値も安全に変換できる
3. 単項プラス(+)演算子を使う
const num = +a.dataset.value; // 簡潔に記述できる
注意点
Number("6.0")の実行結果は6となり、小数点以下の「.0」は失われます。表示形式まで正確に保持したい場合は、値を文字列のまま管理し、計算を行うタイミングでのみ数値へ変換するのが安全です。
また、数値に変換できない文字列をNumber()に渡すとNaNが返されるため、isNaN()などで事前にバリデーションを行うことで、予期しないエラーを防ぐことができます。
-
JavaScriptの型キャスト(型変換)とは?String・Number・Booleanの使い方を解説
型キャスト(型変換)とは?型キャストとは、あるデータ型を別のデータ型へ明示的に変換することを指します。JavaScriptでは、以下の3つの関数を使った変換が最も一般的です。String() … 文字列型へ変換Boolean() … 真偽値型へ変換Number() … 数値型へ変換それぞれの関数に値を渡すだけで、簡単に目的の型へ変換できるのが特徴です。JavaScriptで型キャストを行うコード例以下は、JavaScriptで型キャストを行うサンプルコードです。ボタンをクリックすると、値「44」が文字列・数値・真偽値へそれぞれ変換され、結果が画面に表示されます。<!DOCTYPE htm
-
JavaScriptで数値を丸める・切り捨てる方法|Math.round()とMath.trunc()の違いと使い方
JavaScriptには、小数を整数へ変換するためのメソッドとして、Math.round() と Math.trunc() の2つが標準で用意されています。Math.round():小数点以下を四捨五入し、最も近い整数に丸めます。例えば「3.5」は「4」に、「3.4」は「3」になります。Math.trunc():小数点以下を単純に取り除き、整数部分だけを残します。「3.9」も「3.1」もどちらも「3」になります。それぞれの特徴を踏まえながら、実際のコード例を見ていきましょう。Math.round() と Math.trunc() の違いメソッド動作例(3.999)Math.round()四捨五