JavaScript データ型について

こんにちは、タクゾウです。
今回は、JavaScriptのデータ型についてまとめていきたいと思います。

jsはデータ型がとてもゆるく、jsがかってに値を元に型を推測してつけてくれるのできちんと認識していないと意図しない処理になってしまいエラーがおこるこおとがあるので気をつけましょう。

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

プロパティとメソッドを持たない単純なデータで、Boolean, Null, Undefined, Number, Stringの5つあります。

JavaScript
	//真偽値を扱うBoolean
	var isBool = true;

	//数値を扱うnumber
	var num = 123;
	num = 123.456;//number型の中には浮動小数点型もある
	num = 0600;//8進数もある
	num = ffffff;//16進数もある

	//文字を扱うstring
	var str = "123";

	//null値を扱うnull(ヌル)
	var str = null;
	
	//未定定義値を扱うundefined
	var str = undefined;	

参照型

オブジェクトは識別子によって参照可能なメモリ内の値とみなせます。array, object, 関数の3つがあります。

JavaScript
// 配列を扱うarray
	var arr = [];

	// オブジェクトを扱うobject
	var obj = {};

	// 関数を扱うfunction (他の言語と違って、特殊でデータ型の一種)
	function func(){
	}

基本型は値そのものを使い、参照型は値の格納されているアドレスを扱う。
メモリの使い方が違うことに注意しましょう。

リテラルについて

リテラルとは値の表現方法の事であり、値には色々な表現方法があります。

数値リテラル

JavaScript
var num = 123;//一般的な10進数
	num = 123.456;//浮動小数点
	num = 0600;//8進数
	num = 0xcc55bb;//16進数

文字列リテラル

基本的にシングルクォーテーションを使い、文字列の中でさらにシングルクォーテーションを使う場合は、ダブルクォーテーションを使うのがおすすめです。

JavaScript
var str = "he is takuzou";//シングルクォーテーション
	str = "he s takuzou"//ダブルクォーテーション
	str = "He's is takuzou";//ダブルクォーテーションの中にシングルクォーテーション
	str = 'He s "is" takuzou';//シングルクォーテーションの中にダブルクォーテーション

配列リテラル

配列リテラルでは、普通の配列と配列の中に配列を入れた多次元配列があり、文字、数値、関数を格納する事ができます。

JavaScript
var arr = ['html', 'css' 123, function(){}];//普通の配列の場合
	console.log(arr[3]);//結果 123

	arr = [['hmtl', 'css'], ['js', 'php'], ]//多次元配列の場合
	console.log(arr[1][0]);//結果 js

オブジェクトリテラル

ハッシュとか連想配列とよばれるもの、番号じゃなくて、名前でアクセスできる配列です。keyは大文字と小文字で区別されます

JavaScript
var obj = {HMTL:5, CSS:3, js:'ES2015', php:'7'};
	console.log(obj.HTML);//5
	console.log(obj.js);//ES2015

	//キーに変数も使えるし、配列と同じように[]で指定もできる。
	var key = 'CSS';
	console.log(obj[key]);//3
	console.log(obj[0]);//5

演算子について

基本演算子

JavaScript
var num = 1+2;//3
	num = 2-1;//1
	num = 1*2;//2
	num = 2/1;//2
	num = 10%4;//2
	num = ++num;//3
	num = --num;//2

	// 注意点
	num= 10 + '3';//数字の13
	num= '10' + 3;//文字列の103
	num += 10;/1031になってしまう。

基本演算子

JavaScript
var num = 1+2;//3
	num = 2-1;//1
	num = 1*2;//2
	num = 2/1;//2
	num = 10%4;//2
	num = ++num;//3
	num = --num;//2

	// 注意点
	num= 10 + '3';//数字の13
	num= '10' + 3;//文字列の103
	num += 10;/1031になってしまう。

代入演算子

JavaScript
var num = 3;
	num += 3;//6
	num -= 3;//3
	num *= 3;//9
	num /= 3;//3
	num %= 3;//7

比較演算子

JavaScript
var isBool = 1 == 1;//true
	isBool = 1 != 1;//false
	isBool = 1 < 2;//true
	isBool = 1 > 2;//false
	isBool = 1 <= 1;//true
	isBool = 1 >= 1;//true

	//厳密比較(==は型を判断しない。===の場合は型まで判断する。)
	isBool = 1 == '1';//true 曖昧比較
	isBool = 1 === '1';//false
	isBool = 1 !== '1';//true

	//ちょっと応用
	//1と1がおナイj場合Aを変数にいれる。そうでない場合Bを入れる。
	isBool = (1 === '1') ? 'A' : 'b';//B


	var arr1 = ['html', 'css'];
	var arr2 = ['html', 'css'];

	isBool = arr1 === arr2;//false
	// もってくる参照先が違うため、厳密比較するとfalseになってしまう。

	arr2 = arr1;
	isBool = arr1 === arr2;//true
	//この場合は参照先が同じなので、ロッカーナンバーが同じなのでtrue

関数

JavaScript
var str1 = 1;
	var str2 = '1';
	isBool = str1 == str2;//?
	//バグの減員となるため、必ず、厳密比較すること!!
	// 厳密比較をしないと初心者だと思われます。

論理演算子

JavaScript
	var isBool = 1 === 1 && 2 ===2;//trueどっちもtureならtureをかえす
	isBool = 1 === 1 || 2 ===3; //ture; どちらかがtrueならtrue
	isBool = !(1 === 1 && 2 ===2;) //false; !()でtrue,falseを反転する

	//&&と||は左辺が評価されたら右辺が評価されていない場合がある。
	isBool = 1 === 1 || 2 ===3; //ture; どちらかがtrueならtrue
	の場合 1 === 1 |だけ実装してtrueが確定なので後ろの記述は実装しない

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA