はじめに
Javascript初心者です。
データ型を学んでいて、重要だと思ったことをアウトプットしていきます。
なお、筆者はJava,c#,rubyをちょっとだけ学んでいるので、そういった言語との
違いなどについても述べていければと思います。
※ 注意
記事の内容は誤っている箇所がある可能性があります。
お気づきになられた方はご指摘頂けると大変ありがたいです。
何卒よろしくお願いします。
Javascriptのデータ型の種類
※ECMAScript6~の型
- string
- number
- boolean
- null
- undifined
- symbol
- object
string~symbolはプリミティブ型、基本型と呼ばれています。
objectはオブジェクト型、参照型と呼ばれています。
プリミティブ、オブジェクトの違いについてはほとんどのプログラミング言語で
定義が似ていると思うのでググってみてください。
それぞれ解説していきます。
string
文字列を扱う文字列型です。
ダブルクォーテーション(""),シングルクォーテーション('')で囲んで表現されます。
number
数値を扱う数値型です。
ちなみに、'数値'と'数字'は多くの場合、別物とみなされます。
boolean
正か負か、又は0か1かを表す真偽値型です。(論理型とも呼ばれます)
true,falseという名前で表現されます。
null
「何も存在していない」ことを表現します。
※多言語では、”存在しないオブジェクトへの参照”などと表される場合もありますが
Javascriptにおいてnullはそうではありません。
undifined★
「定義されていない」を表現します。
Javascript固有の型となっています。"宣言したけど値は未定義"
のような変数に対してundifinedが割り当てられます。
symbol★
ユニークで不変な「識別子」を表現します。
Object型の中のデータ構造に使用されたりします。
Rubyでいうsymbolとは異なります。
※ECMAScript6より登場しました。
object
データおよびそのデータを操作する命令が入ったデータ構造です。
その名の通り、現実の「モノ」に例えられます。
上記のプリミティブ型以外でnew
キーワードで変数に格納されるものがこれにあたります。
ちょっとしたTips
string ⇄ numberのデータ型変換
paizaとかでも意外と変換忘れがちなので注意したいところです...
// ■ string → number
let str = "1000";
let num1 = +str; // 方法①
let num2 = Number(str); // 方法②
console.log(typeof(num1),typeof(num2));
//=> "number" "number"
// ■ number → string
let num = 1000;
let str1 = num + "";
let str2 = String(num);
console.log(typeof(str1),typeof(str2));
//=> "strng" "string"