首页IT科技判断一个对象是否为null(前端基础面试题:如何判断对象是否具有某属性?遍历数组的方法有哪些?)

判断一个对象是否为null(前端基础面试题:如何判断对象是否具有某属性?遍历数组的方法有哪些?)

时间2025-05-02 18:55:41分类IT科技浏览3356
导读:一、如何判断对象具有某属性? 如:let obj={name:zhangsan,age:21}...

一          、如何判断对象具有某属性?

如:let obj={name:zhangsan,age:21}

有以下方法 ( property 为属性名的变量          ,实际上是key                 ,键名):

1. property in obj

效果如图:

in 运算符

2. Reflect.has(obj, property)

效果如图:

关于 Reflect:

① 它是JS的一个内置对象      ,无构造函数          ,可以用它遍历对象的key                ,如:Reflect.ownKeys(obj) // [name, age];

② 也可以用它给对象添加一个属性      ,如:Reflect.set(obj, hobby, [singing,reading]), 返回值是true/false, 如图:

③ 无论是自有属性还是原型上有该属性     ,Reflect.has(obj,property)方法都会返回 true          。

3. obj.hasOwnProperty(property)

可以判断是否是对象的自有属性

                ,若有           ,返回true     ,否则返回 false(原型链上的返回false)                 。

所有继承了 Object 的对象都会继承到 hasOwnProperty 方法      。用来检测一个对象是否含有特定的自身属性;和 in 运算符不同                ,该方法会忽略掉那些从原型链上继承到的属性          。

4. Object.hasOwn(obj, property)

是 Object 的方法           ,也是判断自有属性的                。

不过要注意浏览器版本兼容问题,谷歌 93 以上版本才支持      。不能贸然使用     。

MDN推荐用该方法替换掉 hasOwnProperty                。原话是这样的:“ 建议使用此方法替代 Object.hasOwnProperty()                ,因为它适用于使用 Object.create(null) 创建的对象以及覆盖了继承的 hasOwnProperty() 方法的对象           。尽管可以通过在外部对象上调用 Object.prototype.hasOwnProperty() 解决这些问题                 ,但是 Object.hasOwn() 更加直观     。           ”

以下是运行结果图:

5. Object.prototype.hasOwnProperty.call 方法

判断自有属性:

Object.prototype.hasOwnProperty.call(obj2,studentId)

二                 、遍历数组的方法有哪些?

for,for...in          ,for...of                 ,forEach      ,map

其中 forEach 会改变原数组          ,map 会返回一个新的数组                ,得到的结果赋值给一个新的变量接收      ,如:

const arr=[1, 2]; const result = arr.map((item, index)=>{ return item + 1; }) // result:[2,3] arr还是[1,2]

注意:

for...in 拿到的是数组下标     ,for...of 拿到的是数组的值; for...in 能遍历对象                ,拿到的是对象的key;for...of 不能遍历对象           ,会报错 obj is not iterable 不可迭代                。

如果附带其他功能的遍历:

1      、reduce 2          、filter 3                、some 4      、indexOf 5     、includes

这里博主只是单纯罗列一下           。

这些方法什么用处?可以菜鸟教程或mdn查一下     ,可以见这位同学的总结。

三                、2023最新前端面经及行情分析

点击这里:前端面经

声明:本站所有文章                ,如无特殊说明或标注           ,均为本站原创发布                。任何个人或组织,在未征得本站同意时                ,禁止复制           、盗用     、采集                、发布本站内容到任何网站           、书籍等各类媒体平台                 。如若本站内容侵犯了原著者的合法权益                 ,可联系我们进行处理。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
wkhtmltopdf docker(WKHtmltoPdf) sortable el-table(sortablejs的使用实践)