js判斷是否可以列舉

2021-10-25 03:56:42 字數 1228 閱讀 4218

列舉是指物件中的屬性是否可以遍歷出來,再簡單點說就是屬性是否可以列舉出來。

for…in 遍歷自身的和原型上繼承的可列舉屬性

object.keys 遍歷自身可列舉屬性

json.stringify的使用 字串化自身可列舉屬性

let obj =

object.

defineproperty

(obj,

"hobby",)

object.prototype.

foo=

function()

// 可以遍歷自身以及原型鏈上的可列舉屬性

for(

const key in obj)

//遍歷自身的可列舉屬性

const res = object.

keys

(obj)

console.

log(res)

;//["name","age"]

//遍歷自身可列舉和不可列舉的屬性

const result = object.

getownpropertynames

(obj)

console.

log(result)

;//["name", "age", "hobby"]

每個物件都有propertyisenumerable()方法,這個方法可以判斷出指定的屬性是否可列舉。

用法:obj.propertyisenumerable(「屬性名」);

console.

log(person.

propertyisenumerable

('name'))

;//true

console.

log(person.

propertyisenumerable

('age'))

;//false

console.

log(person.

propertyisenumerable

('hobby'))

;//false

for…in迴圈是遍歷自身以及原型鏈上面的可列舉屬性;

而object.keys只能遍歷自身的可列舉屬性,不可以遍歷原型鏈上的可列舉屬性,這是for…in和object.keys()的主要區別;

object.getownpropertynames則是遍歷自身所有屬性(不論是否可列舉)。

判斷是否可以關燈

description 給你 n 個開關和 m 個燈。第 i 個開關開啟某一些燈。該資訊以矩陣形式 n 行 m 列 如果第 i 個開關能開啟第 j 個燈,則 a ij 1,如果不能開啟則 a ij 0 最初,所有 m 燈都關閉。開關狀態僅能從 關 變為 開 這意味著如果兩個或更多開關連線到同乙個燈,...

判斷元素是否可以滾動scroll

因為要做類似於微博的懶載入功能,所以要寫乙個懶載入元件lazyload.js。寫的過程中,有乙個很坑的問題 比如一般監聽整個body頁面的lazyload,則需要監聽window.onscroll事件。如果每屏載入10條資料,但是電腦螢幕大了,10條資料也沒有佔滿螢幕,此時就沒法觸發body的滾動,...

js判斷是否含有中文

第一種 exfcode 1functionischinese temp 2 第二種 exfcode 01functionischn str 02else 第三種 exfcode 01functionfuncchina 02else 第四種 exfcode 1functionischina s 2el...