学習日記

プログラミング学習のアウトプット用日記

今日の復習

チャプター2続きその4

比較演算子

→等価演算子で参照型を比較する場合はメモリのアドレスが等しい場合のみtrueを返す。

var data1=['Javascript','Ajax','ASP.NET'];
var data2=['Javascript','Ajax','ASP.NET'];

console.log(data1==data2);  結果:false

var data1=['Javascript','Ajax','ASP.NET'];
var data2=data1;
console.log(data1==data2);  結果:true

記述方法

条件式? trueの処理;falseの処理

var x=200

console.log((x=200)? '当たり':'はずれ');  結果:当たり

 

論理演算子

オペランドに指定した変数、要素、プロパティを破棄。

破棄に成功したらtrue、失敗した場合はfalseを返す。

例1

→配列の要素を削除した場合、インデックス番号は変わらない。

 繰り上がることはなく該当箇所が削除される。

var ary = ['JavaScript','ajax','ASP.NET'];
console.log(delete ary[0]);  結果:true
console.log(ary);  結果:[1:'ajax',2:'ASP.NET']

例2

→オブジェクトもプロパティを削除した場合も配列と同様。

var obj = {x:1,y:2};
console.log(delete obj.x); 結果:true
console.log(obj.x); 結果:undefined

var obj2 = {x:obj,y:2};
console.log(delete obj2.x); 結果:true
console.log(obj); 結果:{y:2}


例3

→明示的に宣言された変数は削除できない。
var data1=1;
console.log(delete data1); 結果:false
console.log(data1); 結果:1

data2=10;
console.log(delete data2); 結果:true
console.log(data2); 結果:エラー

 

オペランドに指定した変数、リテラルのデータ型を表す文字列を返す。

var num = 1;
console.log(typeof num); 結果:number

var str ='カバ';
console.log(typeof str); 結果:string

var flag =true;
console.log(typeof flag); 結果:boolean

var ary =['フグ','okome','sendai'];
console.log(typeof ary); 結果:object

var obj={x:1,y:2}
console.log(typeof obj); 結果:object