基本型(プリミティブ型)と参照型

2017年2月11日

JavaScriptのデータ型は大きく分けて、基本型(プリミティブ型)参照型の2つに分類することができます。これら2つの型の違いは、値が直接変数に格納されるのか、もしくはメモリ上のアドレス(参照値)が格納されるのかなどの違いがあります。

 

スポンサーリンク

 

 

基本型(プリミティブ型)


基本型には以下の種類があります。

真偽値(boolean)
数値(number)
文字列(string)
null
undefined
シンボル(symbol)

 

基本型の値は、変数に直接格納されます。

 

 

1行目において変数book1、そして2行目のbook2には「こころ」が直接格納されています。よってbook1の値を4行目で「三四郎」に変更しても、book2の値は「こころ」のままです。

 

基本型の場合、同じ値が代入された変数は===演算子においてtrueが返されます。

 

 

参照型


上記で挙げた基本型のいずれにも属さないのが参照型 です。参照型には以下のような種類が挙げられます。

 

オブジェクト(object)
配列(array)
関数(function)

 

参照型ではオブジェクトがコピーされる時、その値自体がコピーされるのではなく、そのオブジェクトが格納されているメモリ上のアドレス(参照値)がコピーされます。

 

 

2行目では、変数array1の値が格納されているメモリ上のアドレスがarray2に格納されます。そして、4行目においてarray1の値を変更すると、それに伴いarray2の内容も変更されます。これはarray1とarray2のオブジェクトは同じアドレスを共有しているからです。

 

参照型においては、たとえ同じ値のオブジェクトであっても参照値が違えば===演算子においてもfalseが返されます。

 

変数の型はtypeof演算子で知ることができます。

 

 

 

 

LINEで送る
Pocket

Copyright © 2019 思考の葉 All Rights Reserved.  プライバシーポリシー