#0014 JavaScript での 数値 と 文字列 (とブール型/オブジェクト型/配列型)の型変換

スマホ(Textのみ)⇔PC(Display)広告自動切換えテスト中(現在スマホ以外で表示中)

JavaScript の深い(かも知れない)お話シリーズ(?)です。

数値と文字列と(オブジェクトと配列とブール型)の型変換については、いろんなページで紹介されているのでそちらを見ていただくとして、ここでは私が好んで使っている記述法の紹介します。

1. 数値から文字列に型変換する

基本的な考え方は VB でも C# でも PHP でも使える記述になります。

"" + 数値型/文字列型/ブール型/オブジェクト型/配列型

他の方のサイトのページでは一番最後に空文字を追加するパターンが多いみたいですが、私は先頭につけて「これは文字列として扱うぞ!」という主張をさせておくというような書き方にしています。

例えば 型変換のいろいろ でも value + '' が使われることが多いようです。 と書いてありますね。

参考までに、ぱぱっと alert 表示をさせるJavascript を書いてみました。

(1)  数値型		alert(1 + " , type = " + typeof 1 )
(2)  文字列型に変換	alert(""+ 1 + " , type = " + typeof ("" + 1) )
(3)  ブール型(真)	alert("" +  ( 1 == 1 ) + " , type = " + typeof ( 1 == 1 ) )
(4)  ブール型(偽)	alert("" +  ( 1 != 1 ) + " , type = " + typeof ( 1 != 1 ) )
(5)  オブジェクト型	alert("" +  obj + " , type = " + typeof obj )
(5-2)オブジェクト型-2	alert("" +  Object.prototype.toString.call(obj) + " , type = " + typeof obj )
(6)  配列型		alert("" +  Object.prototype.toString.call(arr) + " , type = " + typeof arr )
(7)  NaN		alert("" +  NaN + " , type = " + typeof NaN )
(8)  null		alert("" +  null + " , type = " + typeof null )
(9)  undefined		alert("" +  undefined + " , type = " + typeof undefined )
(10) Infinity		alert("" +  Infinity + " , type = " + typeof Infinity )
(11) Error		alert("" +  Error + " , type = " + typeof Error )
(12) Function		alert("" +  Function + " , type = " + typeof Function )

ちなみに alert() 関数の使い方の定義は以下のページを参照してください。
MDN window.alert

alert(引数) で引数に指定できるのは文字列だけですので、上のコードではいずれも alert() 関数に渡される直前に引数が文字列に変換されているというのがわかります。

配列のみプロトタイプ宣言をチェックしないと配列だとわからないみたいです。
NaN , null , undefined , Error , Function はおまけで書いておきました。

詳しいことは以下の規格のほうを参照してください。
MDN JavaScript リファレンス

この記事/コードの趣旨は「とりあえず頭に ""+ をつけておけば、
たいていの場合はエラーで中断したりせずに最低でも何がしかの手がかりを表示してくれる、というお話でした。

動作確認は以下の組み合わせで行っています。
(windows 7 ) Firefox 49.02
(windows 7 ) Google Chrome 54.0
(windows XP) IE 8
(IOS 9) Safari
(Windows 10) Edge



wrote by tasa.