25 JS全解 JS 物件

2021-10-05 05:21:42 字數 3781 閱讀 7136

如何修改或增加物件的屬性

'name' in obj和obj.hasownproperty('name') 的區別

無序的資料集合

鍵值對的集合

每個key是物件的屬性名

每個value是物件的屬性值

let f= //簡單寫法

let obj=new object() //構造物件

console.log() //{}前面加東西才是物件,否則為**塊

let obj=new object()//不能分號結尾

let obj=new object()//frank為字串,加引號

var a = //錯誤,是:

var c = //正確,空字串

console.keys(c)//錯誤,是物件object開頭

object.keys(c)

[""]

0: ""

length: 1

__proto__: array(0)

var c=//省略引號時,不能含有特殊字元

vm1010:1 uncaught syntaxerror: unexpected identifier

var c=

ca b: 2

__proto__: object

var c= //2$是不加引號 不合法

vm1100:1 uncaught syntaxerror: invalid or unexpected token

var c=//2合法

奇怪的屬性名

let obj=

//0xff是16進製制數

obj0.123: true

100: true

xoff: true

__proto__: object

**object.keys(物件名)**可以打出物件的所有屬性名

object.keys(obj)

(3) ["100", "xoff", "0.123"]

0: "100"

1: "xoff"

2: "0.123"

用乙個變數的值作為屬性名,需要加

var p='name'

var d= //屬性名為字串'p'

var e=//屬性名為字串'name' 由於de

var g=

object.keys(g)

["11"]

var a={}

a.tostring()

//不報錯 由於a的隱藏屬性對應的物件上有tostring()

var a=symbol()

var obj=

obj

s大寫,迭代時才會用

obj.***=undefined 只刪除屬性名

var obj=

obj.name=undefined

var obj2=

delete obj2.name

objobj2

delete obj["age"]

true

objname in obj

false

'name' in obj

true

'age' in obj2

true

//一定要加引號 不然為變數 一直為空

window.name

""

'name' in obj && obj.name===undefined

true

obj

obj.name===undefined

true

obj.age===undefined

true

obj

模擬借衛生紙,沒有和有,但沒帶

檢視自身屬性

object.keys(obj2)

(2) ["name", "age"]

object.values(obj2)

(2) ["frank", 18]

object.entries(obj2)

(2) [array(2), array(2)]

0: (2) ["name", "frank"]

1: (2) ["age", 18]

檢視自身屬性+共有屬性
console.dir(obj2)

obj2.__proto__

判斷屬性是自身還是共有
obj2.hasownproperty('name')

true

obj2.hasownproperty('tostring')

false

原型
console.log(obj2.__proto__.__proto__)

null

'__proto__' in obj2.__proto__

true

檢視1個屬性
var obj=

obj['name'] //方式一

"frank"

obj.name//方式二 中name是字串

"frank"

obj[name] //錯誤方式 由於name為變數

undefined

name

""window.name='age'//name是全域性變數 可以賦值字串

"age"

obj[name]

18obj['na'+'me']

"frank"

console.log('age')

值是undefined

obj[undefined]

值是undefined

obj[console.log('age')]

結果為undefined

修改和增加是一樣的,已有的叫改,沒有的叫增obj.aaa='aaa'修改自身屬性

object.assign(obj,)

修改原型的屬性即共有屬性

讀時走原型,寫的時候不走原型

obj.__proto__=null

null

objaaa: "aaa"

key: "frank"

name: "frank"

tostring: "***"

修改物件原型(隱藏屬性)

相當於在隱藏屬性和原型中加原型,叫原型鏈

js學習筆記25 Event物件

event 事件物件,當乙個事件發生的時候,和當前這個物件發生的這個事件有關的一些詳細的資訊都會被臨時儲存到乙個指定的地方 event 物件,供我們在需要時呼叫。事件物件必須在乙個事件呼叫的函式裡面使用才有內容。事件函式 事件呼叫的函式,乙個函式是不是事件函式,不在定義的時候決定 而是取決於這個函式...

Js基礎知識1 陣列操作全解

js變數型別 var string var name student age 12 underfined null boolean string number為基本數值型別。逗號一併定義初始化多個變數。基本包裝型別string boolean number通過valueof 可以獲取基本數值型別,可...

js 建立js物件

js建立類有集中方法,我個人比較喜歡的方式是 混合的建構函式 原型方式 比較好理解 用建構函式來定義非函式屬性,用原型方式定義物件的函式屬性,結果所有函式鬥只建立一次,而每個物件鬥具有自由的物件屬性例項。function ocar color ocar.prototype.showcolor fun...