js對(duì)象

1 定義
(1)語(yǔ)法形式:

var obj = {
 key:value
};

(3)構(gòu)造形式:

var obj = new Object();
obj.key = value;

2 js 的類(lèi)型

(1)string
(2)number
(3)boolean
(4) null
(5) undefined
(6) object
簡(jiǎn)單基本類(lèi)型:string ,number,boolean,null undefined .null有時(shí)會(huì)被當(dāng)做一種對(duì)象。typeof null``// “object”.這是語(yǔ)言的一個(gè)bug余黎。(原理:不同的對(duì)象在底層都表示成二進(jìn)制,在js中如果前三位都是0览濒,則為object類(lèi)型薯嗤,null的二進(jìn)制本身就是全部為0的,故顯示為object)
函數(shù)就是對(duì)象的一個(gè)子類(lèi)型(即可調(diào)用的對(duì)象)界睁,數(shù)組也是對(duì)象中的一個(gè)子類(lèi)型宙攻。
js中的一些對(duì)象子類(lèi)型(內(nèi)置對(duì)象):
(1)String
(2)Number
(3 Boolean
(4) Object
(5) Function
(6) Array
(7) Data
(8) RegExp
(9) Error

var obj = "I love you,rose";
typeof obj;//string
var obj1 = new String("I love you ,rose");
typeof obj1;//"object"
obj1 instanceof String //true

在必要時(shí)js引擎會(huì)自動(dòng)把string字面量 轉(zhuǎn)換為String画舌,以便我們對(duì)其進(jìn)行其他的操作堕担。

var obj2  = " i a m";
obj2.length;  //5
obj2.charAt(4);//"m“

對(duì)于Number,Boolean,引擎也會(huì)把字面量轉(zhuǎn)換成內(nèi)置對(duì)象來(lái)進(jìn)行操作,但是由于Object.Array,Function,RegExp他們都是對(duì)象骗炉,不是字面量照宝。‘
存貯在對(duì)象中的屬性只是一個(gè)指針句葵,它指向該屬性值厕鹃。調(diào)用時(shí)有兩中形式Object.key或者Object[''key''];其中.操作符需要讓屬性名滿(mǎn)足標(biāo)識(shí)符的規(guī)則,但是["..’']操作符可以使用任意Utf-8或者Unicode字符串作為屬性名乍丈。

在對(duì)象中屬性名一直都是字符串剂碴。使用typeof操作符后也是以字符串的形式輸出的。如果進(jìn)行多于一次的typeof操作轻专,都會(huì)變?yōu)?code>"strng".

typeof obj3//"object"
typeof typeof obj3//"string"

可計(jì)算屬性名:

es6:
var prefix = "foo";
var myObject = {
 [prefix + "bar"]:"the girl is my friend",
[prefix +"baz"]:"the boy is my brother"
}
myObject.foobar;//"the girl is my friend"
myObject.foobaz;//"the boy is my brother"

可計(jì)算屬性名最常用的場(chǎng)景可能是ES6的Symbol忆矛。

數(shù)組

向數(shù)組添加屬性:

var arr1 = ["bat",1,"foo"];
arr1.bar = "bar";
arrq.length ;//3
arr1["3"] = "mioa";
arr1.length ;//4

從上面的代碼我們發(fā)現(xiàn)給數(shù)組直接添加屬性值時(shí),如果是字符串的屬性名请垛,則他的length不會(huì)改變催训,如果是數(shù)字的屬性名時(shí),他會(huì)以為是數(shù)組的下標(biāo)宗收,從而添加長(zhǎng)度length漫拭。

復(fù)制對(duì)象(面試)

屬性描述符

var myObject ={
a:2
};
Object.getOwnPropertyDescriptor(myObject,"a");
//{value: 2, writable: true, enumerable: true, configurable: true}

禁止對(duì)象拓展(添加不了新屬性):

var myObject = {
 a:2
}
Object.perventExtensions(myObject);
myObject.b = 1 ;
myObject.b;//undefined

凍結(jié)對(duì)象(無(wú)法添加無(wú)法刪除屬性,除此之外還不能修改屬性的值):

var myObject = {
 a:2
}
Object.freeze(myObject);
myObject.a = 5;
myObject.a //2

Getter&Setter

es5中可以使用getter 和setter部分改寫(xiě)默認(rèn)操作

var myObject ={
get a(){
  return 2;  
  }
};
Object.defineProperty(
myObject,
"b",{
 get :function(){return this.a*2},
   enumerable:true
}
)
myObject.a//2
myObject.b//4

上面的代碼在給我們展示給對(duì)象myObject 中的屬性定義了一個(gè)getter函數(shù)混稽,然后再設(shè)置了一個(gè)新屬性為,再給其設(shè)置getter函數(shù).
只使用一個(gè)(Getter或者是Setter)是理想的采驻,他們應(yīng)該成對(duì)存在:

var myObject3 = {
get a(){
 return this._a_;
  },
set a(val){
  return this._a_ = val*2;
  }
};
myObject3.a = 2;
myObject3.a  //4

引擎先讀set再get

看對(duì)象是否存在該屬性的方法:

(1)in操作符:

var obj = {
a:2
};
//false
("b" in obj);

(2) hasOwnproperty方法:

var obj = {
a:2
};

//true
obj.hasOwnProperty("a");

(3)很厲害的判定法:

Object.prototype.hasOwnProperty.call(obj,"a");

注意 in操作符是可以檢查容器內(nèi)是否有某個(gè)值,但是它實(shí)際上是在檢查屬性名是否存在匈勋。

var arr3 = [1,2,3];
(3 in arr3);//false

出現(xiàn)上面這段代碼的原因如下:
對(duì)于數(shù)組來(lái)說(shuō):它的屬性名(也就是索引)是0礼旅,1,2洽洁,里面是沒(méi)有3的痘系。
所以它會(huì)報(bào)false.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市饿自,隨后出現(xiàn)的幾起案子汰翠,更是在濱河造成了極大的恐慌临谱,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,744評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件奴璃,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡城豁,警方通過(guò)查閱死者的電腦和手機(jī)苟穆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)唱星,“玉大人雳旅,你說(shuō)我怎么就攤上這事〖淞模” “怎么了攒盈?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,105評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀(guān)的道長(zhǎng)哎榴。 經(jīng)常有香客問(wèn)我型豁,道長(zhǎng),這世上最難降的妖魔是什么尚蝌? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,242評(píng)論 1 292
  • 正文 為了忘掉前任迎变,我火速辦了婚禮,結(jié)果婚禮上飘言,老公的妹妹穿的比我還像新娘衣形。我一直安慰自己,他們只是感情好姿鸿,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,269評(píng)論 6 389
  • 文/花漫 我一把揭開(kāi)白布谆吴。 她就那樣靜靜地躺著,像睡著了一般苛预。 火紅的嫁衣襯著肌膚如雪句狼。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,215評(píng)論 1 299
  • 那天碟渺,我揣著相機(jī)與錄音鲜锚,去河邊找鬼。 笑死苫拍,一個(gè)胖子當(dāng)著我的面吹牛芜繁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播绒极,決...
    沈念sama閱讀 40,096評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼骏令,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了垄提?” 一聲冷哼從身側(cè)響起榔袋,我...
    開(kāi)封第一講書(shū)人閱讀 38,939評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤周拐,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后凰兑,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體妥粟,經(jīng)...
    沈念sama閱讀 45,354評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,573評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缸濒。...
    茶點(diǎn)故事閱讀 39,745評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖播急,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情售睹,我是刑警寧澤桩警,帶...
    沈念sama閱讀 35,448評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站昌妹,受9級(jí)特大地震影響捶枢,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜飞崖,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,048評(píng)論 3 327
  • 文/蒙蒙 一柱蟀、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蚜厉,春花似錦长已、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,683評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至贰健,卻和暖如春胞四,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背伶椿。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,838評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工辜伟, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人脊另。 一個(gè)月前我還...
    沈念sama閱讀 47,776評(píng)論 2 369
  • 正文 我出身青樓导狡,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親偎痛。 傳聞我的和親對(duì)象是個(gè)殘疾皇子旱捧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,652評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 國(guó)家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報(bào)批稿:20170802 前言: 排版 ...
    庭說(shuō)閱讀 10,962評(píng)論 6 13
  • 第3章 基本概念 3.1 語(yǔ)法 3.2 關(guān)鍵字和保留字 3.3 變量 3.4 數(shù)據(jù)類(lèi)型 5種簡(jiǎn)單數(shù)據(jù)類(lèi)型:Unde...
    RickCole閱讀 5,124評(píng)論 0 21
  • 官方中文版原文鏈接 感謝社區(qū)中各位的大力支持,譯者再次奉上一點(diǎn)點(diǎn)福利:阿里云產(chǎn)品券,享受所有官網(wǎng)優(yōu)惠枚赡,并抽取幸運(yùn)大...
    HetfieldJoe閱讀 2,592評(píng)論 9 22
  • 文章將會(huì)對(duì)對(duì)象屬性特性氓癌,原型鏈,對(duì)象拷貝進(jìn)行說(shuō)明贫橙。 一贪婉、JavaScript屬性的可迭代、可修改和可配置特性 作者...
    ArvinH閱讀 362評(píng)論 0 0
  • 一念輕安---目錄 文‖四小爺微風(fēng)入窗卢肃,佇立與窗前谓松,只一薄紗在身的南榮輕安不由的顫了顫。 此時(shí)一名摸約十七践剂、八歲的...
    四小爺閱讀 460評(píng)論 0 1