Js определяется, пуст ли целевой объект
Определение, пуст ли целевой объект, три вида методов определения, представленный здесь:
1, наиболее распространенный способ мышления, и ... в ... обходе собственность, как это было правдой «непустой массив», в противном случае, «пустой массив»
function judgeObj(Obj){
for(var attr in Obj){
return alert('非空对象')
}
return alert('空对象')
}
2. судить по JSON приходит .stringify метод:
if(JSON.stringify(Obj) == '{}'){
console.log('空对象');
}
3.ES6 новый метод Object.keys ():
if(Object.keys(Obj).length > 0){//会转化一个数组
console.log('非空对象');
}
Если один из атрибутов объекта определяется JavaScript
Есть ли общий способ атрибутов объекта Краткое описание суждения, различные сценарии, которые будут использоваться по-разному.
Точка (.) Или скобки ([])
Значение свойства может быть приобретено в точке объекта или скобками, если атрибут не существует на объект возвращается неопределенным. Конечно, «отсутствует» означает, что сам объект и не присутствует на цепочке прототипов, цепь имеет свойство, если прототип, возвращается значение атрибута цепи прототипов.
// 创建对象
let test = {name : 'lei'}
// 获取对象的自身的属性
test.name //"lei"
test["name"] //"lei"
// 获取不存在的属性
test.age //undefined
// 获取原型上的属性
test["toString"] //toString() { [native code] }
// 新增一个值为undefined的属性
test.un = undefined
test.un //undefined 不能用在属性值存在,但可能为 undefined的场景
Поэтому, в зависимости от того, можем ли мы obj.x неопределенное возвращаемое значение, чтобы определить, есть ли OBJ х свойства. Этот способ очень прост, то есть ограничения: Вы не можете использовать в присутствии значения атрибута х, но может быть неопределенной сценой. в операторе может решить эту проблему
Программирование шестого года, чтобы поделиться с вами некоторыми из метода обучения, борьба развития необходимо обращать внимание на деталь. 767-273-102 платье осени. От нуля на основе переднего конца , чтобы узнать , как начать. Чтобы увидеть , как предшественники гордо вперед в мире программирования! Постоянно обновляется с последними учебными пособиями и методами обучения (веб - передний конец системы , чтобы узнать маршрут, подробный переднего конец проект боевой обучающее видео), я хотел научиться веб - передний конец, или сменить место работы, или студент колледжа, а также работу требуется обновить свои навыки, является изучение малых партнеров приглашаются присоединиться. Мы будем идти вместе с передним кончиком наконечника
Во-вторых, в операторе
Если указанное свойство указанного объекта или цепочки прототипов в операторе возвращает истину.
// 创建对象
let test = {name : 'lei'}
'name' in test //true
'un' in test //true
'toString' in test //true
'age' in test //false
Как можно видеть в данном примере, значение атрибута не определено, можно судить нормально. Ограниченность этого подхода состоит в том, что свойство не может различать между собой и цепочками прототипов, когда нужно только определить их собственное свойство существует, таким образом, не применяется. Затем нужно hasOwnProperty ()
三, hasOwnProperty ()
test.hasOwnProperty('name') //true 自身属性
test.hasOwnProperty('age') //false 不存在
test.hasOwnProperty('toString') //false 原型链上属性
Это можно увидеть только тогда, когда само существование собственности, возвращает истину. Анализ применим только к собственному атрибутов сцены.
резюме
Существует три метода имеют свои преимущества и недостатки, различные сценарии по-разному, а иногда требует применения комбинации, например, пересекая их собственность, и они поставят использовать в ˙ для ··· и комбинированных hasOwnProperty ().