首页 > 其他分享 >js中判断obj中是否含有某个属性的方法

js中判断obj中是否含有某个属性的方法

时间:2023-11-16 12:12:14浏览次数:42  
标签:console log undefined js hasOwnProperty obj 属性

一般而言,比较常用的有in,hasOwnProperty, 比较undefined。

首先我们先定义一个对象

        let obj = {
            a: 1,
            b: 2,
            d: undefined
        }
  1. hasOwnProperty()表明它查看对象自身的属性
        console.log(obj.hasOwnProperty('a')) //true
        obj.c = 3
        console.log(obj) //{a: 1, b: 2, c: 3}
        //自己的属性是直接在对象上定义的属性
        console.log(obj.hasOwnProperty('c')) //true
        console.log(obj.toString) //ƒ toString() { [native code] }
        //而没有检测到继承的属性
        console.log(obj.hasOwnProperty('toString')) //false
   
  1. in运算符(推荐
   console.log('toString' in obj) //true
    

小结: hasOwnProperty()方法和in操作符之间的主要区别在于后者能检查对象自身和继承的属性

  1. 与undefined比较,从对象访问不存在的属性会导致undefined
 
    console.log(obj.a !== undefined)// true
    console.log(obj.toString !== undefined)//true

    console.log(obj.d !== undefined) // false

小结:即使属性name存在(但有undefined值),obj.d !== undefined 判断为false,错误地认为缺少name属性。所以这种方法有误判断的可能。

总结,判断属性是否存在,推荐使用in方法

标签:console,log,undefined,js,hasOwnProperty,obj,属性
From: https://www.cnblogs.com/DZzzz/p/17835953.html

相关文章

  • Python类对象:属性、继承与多继承
    在Python中,类是创建对象的蓝图。类定义了如何创建对象,并决定了这些对象的属性和行为。本博客将深入探讨Python类对象的属性、继承以及多继承。属性属性是类的特性,它定义了对象的状态。每个对象都有其自己的属性副本。python复制代码classPerson:def__init__(self,name,a......
  • antd的tree的核心显示属性
     树形组件的概念 ......
  • nodejs "Client does not support authentication protocol requested by server; con
    登录mysql输入以下命令:--选择mysql数据库:usemysql--laremehpe是登录用户名ALTERUSER'laremehpe'@'localhost'IDENTIFIEDBY'password'PASSWORDEXPIRENEVER;--laremehpe->用户名,123456->密码ALTERUSER'laremehpe'@'localhos......
  • 【随手记】解析 JSON 中的 Null 值遇到的问题
    在Java中解析JSON字符串时,不同的库会对JSON中的null值有不同的处理方式。本文探讨阿里巴巴的JSONObject和net.sf.json.JSONObject在处理null值时的差异。阿里巴巴的JSONObject阿里巴巴的JSONObject.parseObject方法,在解析JSON字符串时,会将JSON中的null......
  • fatal error C1007: 无法识别的标志“-FitObjData”(在“p2”中)
    VS编译器版本导致的莫名其妙的链接错误。【LINK:fatalerrorC1007:无法识别的标志“-FitObjData”(在“p2”中)】【errorLNK2019:无法解析的外部符号】-一叶知秋,见微知著-博客园(cnblogs.com)......
  • 一些Js常用小方法总结
    1.js找出字符串中,出现最多次数的字母<scripttype="text/javascript">functiontest(){varstr="adadfdfseffserfefsefseeffffftsdg";varmaxLength=0;//命名一个变量放置字母出现的最高次数并初始化为0varresult='';//命名一个变量放置结果输入while(str!=''){/......
  • 简单例子理解 Qt 中 QObject: Cannot create children for a parent that is in a dif
    c++guiprogrammingwithqt中关于QThread的用法的限制下面这句话的翻译不清QObjectisreentrant,buttherearethreeconstraintstokeepinmind:ChildQObjectsmustbecreatedintheirparent'sthread.Inparticular,thismeansthattheobjectscreatedina......
  • Node JS 多进程
    在Node.js中,可以使用多个进程来处理文件,并发执行任务以提高性能和效率。多进程可以提高应用程序的性能和可靠性,但同时也会带来一些额外的开销和复杂性问题优点可以高效利用多核CPU,将许多并发请求分配到不同的进程中处理,来提高应用程序性能。提高可靠性,多进程互相隔离,当一个......
  • 在js中,定义了两个同名函数后, 后面的函数会覆盖前面定义的函数。
    运行以下程序<script>varm=1,j=k=0;functionadd(n){returnn=n+1;}y=add(m);functionadd(n){returnn=n+3;}z=add(m);</script>A2,4B4,4C2,2D报异常正确答案:Bjs里面没有函数重载的......
  • commonJS四个重要环境变量:require、exports、module、global
    按照CommonJS规范,在任何模块代码的作用域下内置了以下哪些变量?AmoduleBcontextCrequireDexports正确答案:ACD浏览器不兼容CommonJS的根本原因,在于缺少四个Node.js环境的变量。commonJS四个重要环境变量:require、exports、module、global......