js判斷物件是否為空物件 JS物件基本用法

2021-10-13 16:20:51 字數 3437 閱讀 9821

前言回顧:

七種資料型別:number string bool symbol null undefined object

五個falsy值:null undefined 0 nan ''(空字串)

let obj =    

物件//定義:鍵值對的集合,無序的資料集合

let obj = new object() //這種是上面一種的正規寫法,但太麻煩,沒人用

console.log()

重點中,name、age就是key,每個key都是物件的屬性名,frank,18就是屬性值。

//所有屬性名會自動變成字串✨

let obj = ;

object.leys(obj) //這種寫法可以得出obj的所有key!!

==>["1","100","225","3.2","0.01","0.234"] //結果!!注意1e2變成了100,js的bug之處

如何用變數做屬性名?

let p1 = 'name'

let obj = 這樣寫,屬性名為』p1'

let obj = 這樣寫,屬性名為'name'

隱藏屬性

綠框標出來的就是傳說中的隱藏屬性

js中每個物件都有乙個隱藏屬性!!這個隱藏屬性儲存著其共有屬性組成的物件的位址!!

共有屬性組成的物件叫做原型,也就是說隱藏屬性儲存著原型的位址。看下面乙個 嘗試理解——

obj是空的,但obj.tostring()居然不報錯,因為obj的隱藏屬性對應的物件上有tostring()

1、刪除屬性

!!注意 delete 是等價於delete obj['***']的,兩種寫法都可以,一樣的。

2、檢視所有屬性(讀屬性)

每個物件都有原型

物件的原型也是物件

檢視屬性值

重中之重

摘自飢人谷課程,方方老師的ppt

摘自飢人谷課程,方方老師的ppt

題目

✨批量賦值✨

無法通過自身修改或增加共有屬性

let obj = {},obj2 = {}//共有tostring

obj.tostring = '***' //只會在改obj本身屬性

obj2.tostring還是在原型上

若偏要修改或增加原型上的屬性

obj.__proto__.tostring = '***' //不推薦用__proto__

object.prototype.tostring = '***'

一般來說,不要修改原型,會引起很多問題

修改隱藏屬性

不推薦使用__proto__

let obj =

let obj2 =

let common =

obj.__proto__ = common

obj2.__proto__ = common

推薦使用object.create

let obj = object.create(common)

obj.name = 'frank'

let obj2 = object.create(common)

obj2.name = 'jack'

規範意思是,要改就一開始就改,別後來再改

'name' in obj 和 obj.hasownproperty有什麼區別?如圖:hasownproperty是判斷自有屬性的,就是除了_proto_以外的自己的屬性裡有沒有的,屬於第一層的。而 in 是判斷所有層,所有屬性裡有沒有這個屬性的。

delete obj['name']

'name' in obj //false

obj.hasownproperty('mame') //false

object.keys(obj)

console.dir(obj)

obj['name']

obj.name //記住這裡的name 是字串!!!

obj[name] //記住這裡的name是變數!!

改自身 obj['name'] = 'jack'

批量改自身 object.assign(obj,)

改共有屬性 obj.__proto__['tostring'] = '***'

改共有屬性 object.prototype['tostring'] = '***'

改原型 obj.__proto__ = common

改原型 let obj = object.create(common)

增:基本同上:已有屬性則改,無則增。

js判斷物件是否為空

在php中空陣列跟和空物件,在進行布林值驗證是是false,但是js中陣列或物件不管是否有屬性或值存在統統任務是true。在編寫程式的過程中這是很蛋疼的。為了解決這個問題只能自己寫方法進行判斷。下面總結一下幾種方法 用es6的keys方法搞定 function isempty obj 利用json轉...

js判斷物件是否為空

1.將json物件轉化為json字串,再判斷該字串是否為 var data var b json.stringify data alert b true 2.for in 迴圈判斷 var obj var b function return true alert b true 3.jquery的is...

js判斷物件是否為空

1 使用es6提供的 object.keys obj 方法 object.keys 返回乙個陣列,包括物件自身的 不含繼承的 所有可列舉屬性 不含 symbol 屬性 的鍵名。object.keys obj length 0 obj.constructor object true表示為空物件,fal...