JavaScript対象のまとめ
5187 ワード
jsには7種類のデータタイプがあります.undefined、null、Boolean、Number、String、オブジェクト、Symbol(es 6).最近は、jsの対象についてより明確な理解ができました.まとめてみます.
1.対象はすべて自分のプライベート属性があります.
なぜnewは全部対象ですか?numberを定義しています.stringは3つの方法があります.Numberを例にします.
オブジェクトには参照機構があります.
私達もtypeofによって対象かどうか判断することができません.例えばnullとundefinedは、typeofが出てくるタイプはobjectタイプですが、対象が持っている属性がなく、対象外です.
以上は私の対象に対する理解が浅いので、間違いがあれば訂正してください.
1.対象はすべて自分のプライベート属性があります.
//json
var json =new Object();
json.a = 20;
console.log(json.a); //20
// ( )
var json2;
json2.a=10;
console.log(json2.a); //undefined
2.newであれば対象です.なぜnewは全部対象ですか?numberを定義しています.stringは3つの方法があります.Numberを例にします.
// Number
var a = 1;
var a = Number(1)
var a = new Number(1);
二つの方式の違いをテストします.普通の定義number方式:var a = 1;
a.b = 3;
console.log(typeof a); // number
console.log(a.b); //undefined
var a = Number(1);
a.b = 3;
console.log(typeof a); // number
console.log(a.b); //undefined
new方式でnumberを作成する時:var a = new Number(1);
console.log(typeof a); // object
// a
a.b = 3;
console.log(a.b);// 3
3.異なるオブジェクトは必ず同じではない// true
var a = 'abc';
var b = 'abc';
console.log(a == b); //true
// , false
var a = [10];
var b = [10];
console.log(a == b);//false
//new , false
var a = new String('abc');
var b = new String('abc');
console.log(a == b); //false
4.オブジェクトには引用機構があります.オブジェクトには参照機構があります.
var a = {};
b =a;
b.c=10;
console.log(a); // {c:10}
/* , a a
* b = a b a
*b.c =10 c:10
* a {c:10}
*/
引用したくないなら、再割り当てができます.私達もtypeofによって対象かどうか判断することができません.例えばnullとundefinedは、typeofが出てくるタイプはobjectタイプですが、対象が持っている属性がなく、対象外です.
以上は私の対象に対する理解が浅いので、間違いがあれば訂正してください.