веб переднего конца вход бой: Js определяется, пуст ли целевой объект, свойство определяется ли субъект

Предупреждение: Данная статья является блоггером оригинальной статьи, следовать CC 4.0 BY-SA авторского соглашения, воспроизведенный, пожалуйста , приложите ссылку первоисточника и это утверждение.
Эта ссылка: https://blog.csdn.net/wewfdf/article/details/102691669

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 ().

рекомендация

отblog.csdn.net/wewfdf/article/details/102691669
рекомендация