JS常用對象方法總結(jié)

本文目錄

    1. Object.keys()
    1. Object.values()
    1. Object.entries()
    1. Object.create()
    1. Object.assign()
  • 6.Object.seal()
    1. Object.freeze()
  • 8.Object.hasOwnProperty()

1. Object.keys()

一種遍歷對象并返回對象所有鍵的簡單方法多艇。

const employee = { name: 'Daniel', age: 40, occupation: 'Engineer', level: 4 };
console.log(Object.keys(employee))

輸出

["name","age","occupation","level"]

Tips:JS 中 Object 的 keys 是無序的嗎?
1.在 ES6 之前 Object 的鍵值對是無序的毅糟;
2.在 ES6 之后 Object 的鍵值對按照自然數(shù)靴患、非自然數(shù)和 Symbol 進(jìn)行排序古程,自然數(shù)是按照大小升序進(jìn)行排序岳颇,其他兩種都是按照插入的時間順序進(jìn)行排序烫止。

2. Object.values()

遍歷對象并返回對象的值

const employee = { name: 'Daniel', age: 40, occupation: 'Engineer', level: 4 };
console.log(Object.values(employee))

輸出

["Daniel",40,"Engineer",4]

3. Object.entries()

獲取一個對象并返回它自己的對象的可枚舉字符串鍵屬性 [key, value] 對奈泪。

const employee = { name: 'Daniel', age: 40, occupation: 'Engineer', level: 4 };
console.log(Object.entries(employee))

輸出

[["name","Daniel"], ["age",40],[ "occupation","Engineer"], ["level",4]]
const drinks = {
  maple: 'out of stock',
  orange: 3.5
}
for (const [name, cost] of Object.entries(drinks)) {
  console.log(`${name}`: ${cost})
}

//輸出
“maple: out of stock”
"orange: 3.5"

4. Object.create()

創(chuàng)建一個新對象绒北,使用現(xiàn)有對象作為新創(chuàng)建對象的原型黎侈。

let Student = {
  name:"fuzzy",
  display() {console.log("Name:",this .name );
};
// create object from student prototype
let std1 = 0bject.create(Student);
stdl.name = "wuzzy";
stdl.display();

輸出

"Name:wuzzy”

5. Object.assign()

將所有可枚舉和擁有的屬性從源對象復(fù)制到目標(biāo)對象,它返回目標(biāo)對象闷游,也稱為淺拷貝峻汉。

const target = {a: 1, b: 2 };
const source = { b: 4, c: 5 };
const returnedTarget = Object.assign(target, source);
console.log(target);
console.log( returnedTarget);

輸出:

{
  "a": 1,
  "b": 2,
  "c": 3,
}
//target和returnedTarget指向的存儲地址是同一個

6.Object.seal()

密封一個防止新屬性添加到它的對象贴汪,并將所有現(xiàn)有屬性標(biāo)記為不可配置。

const car = {price: 15000}
Object.seal (car);
car.price = 18000;
console.log(car.price);
// 18000
// value changed successfully
delete car.price;
console.log(car.price);
// 18000 
// cannot delete when sealed

7. Object.freeze()

凍結(jié)對象休吠,無法再更改凍結(jié)的對象扳埂;
這表示:

  • 新屬性被添加到對象。
  • 要從對象中刪除的現(xiàn)有屬性瘤礁。
  • 更改現(xiàn)有屬性的可枚舉性阳懂、可配置性或可寫性。
  • 更改現(xiàn)有對象屬性和原型的值柜思。
const client = {bdget: 3000}
Object.freeze(client);
client.budget = 2500;
// Shows error in strict mode
console.log( client .budget );
// 3000
// unchanged value as output

8.Object.hasOwnProperty()

Object的hasOwnProperty()方法返回一個布爾值岩调,判斷對象是否包含特定的自身(非繼承)屬性。

判斷自身屬性是否存在

var o = new Object();
o.prop = 'exists';

function changeO() {
  o.newprop = o.prop;
  delete o.prop;
}
o.hasOwnProperty('prop');  // true
changeO();
o.hasOwnProperty('prop');  // false

判斷自身屬性與繼承屬性

function foo() {
  this.name = 'foo'
  this.sayHi = function () {
    console.log('Say Hi')
  }
}

foo.prototype.sayGoodBy = function () {
  console.log('Say Good By')
}

let myPro = new foo()

console.log(myPro.hasOwnProperty('name')) // true
console.log(myPro.hasOwnProperty('toString')) // false
console.log(myPro.hasOwnProperty('sayHi')) // true
console.log(myPro.hasOwnProperty('sayGoodBy')) // false
console.log('sayGoodBy' in myPro) // true
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末赡盘,一起剝皮案震驚了整個濱河市号枕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌亡脑,老刑警劉巖堕澄,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件邀跃,死亡現(xiàn)場離奇詭異霉咨,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)拍屑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進(jìn)店門途戒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人僵驰,你說我怎么就攤上這事喷斋。” “怎么了蒜茴?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵星爪,是天一觀的道長。 經(jīng)常有香客問我粉私,道長顽腾,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任诺核,我火速辦了婚禮抄肖,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘窖杀。我一直安慰自己漓摩,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布入客。 她就那樣靜靜地躺著管毙,像睡著了一般腿椎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上夭咬,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天酥诽,我揣著相機(jī)與錄音,去河邊找鬼皱埠。 笑死肮帐,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的边器。 我是一名探鬼主播训枢,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼忘巧!你這毒婦竟也來了恒界?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤砚嘴,失蹤者是張志新(化名)和其女友劉穎十酣,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體际长,經(jīng)...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡耸采,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了工育。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片虾宇。...
    茶點故事閱讀 39,688評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖如绸,靈堂內(nèi)的尸體忽然破棺而出嘱朽,到底是詐尸還是另有隱情,我是刑警寧澤怔接,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布搪泳,位于F島的核電站,受9級特大地震影響扼脐,放射性物質(zhì)發(fā)生泄漏岸军。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一谎势、第九天 我趴在偏房一處隱蔽的房頂上張望凛膏。 院中可真熱鬧,春花似錦脏榆、人聲如沸猖毫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吁断。三九已至趁蕊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間仔役,已是汗流浹背掷伙。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留又兵,地道東北人任柜。 一個月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像沛厨,于是被迫代替她去往敵國和親宙地。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,573評論 2 353

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