js获取对象属性值的方法

这篇具有很好参考价值的文章主要介绍了js获取对象属性值的方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

场景:已知对象的某属性,我们需要获取对象中的属性值

js获取对象属性值的方法

  1. 通过 . 获取
  2. 通过 [ ] 获取
        let person = {
            name: "bob", age: 18
        };
        // 通过 [] 获取  bob
        console.log(person['name']);  // 加引号,识别为属性去对象中查找
        // 通过 . 获取  bob
        console.log(person.name);  

接下来介绍一下两种方法的不同点

  • [ ]运算符可以用数字作为属性名,点运算符不能
        let p = {
            1: 'Alex', 2: 33
        }
        console.log(p[1]);  // Alex
        console.log(person.1);  // 报错 Uncaught SyntaxError: missing ) after argument list
  • [ ]运算符可以用变量作为属性名,点运算符不能
        let person = {
            name: "bob", age: 18
        };
        let key = 'name';
        console.log(person[key]);  // bob  不加引号,识别为变量
        console.log(person.key);  // undefined

ps:
用变量key获取对象中的属性值时,点运算符会将key视为一个属性去对象中查找,对象中没有这个属性,因此为undefined
在用 [ ] 获取值时,需要注意的是 [ ] 中是否要加引号

  • 补充:可选链运算符 ?.

可选链运算符(?.)允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。?. 运算符的功能类似于 . 链式运算符,不同之处在于,在引用为空 (nullish ) (null 或者 undefined) 的情况下不会引起错误,该表达式短路返回值是 undefined。与函数调用一起使用时,如果给定的函数不存在,则返回 undefined。

我们在访问对象中一个深度嵌套的子属性,需要验证之间的引用,如:

let nestedProp = obj.first && obj.first.second

为了避免报错,在访问obj.first.second之前,要保证 obj.first 的值既不是 null,也不是 undefined。如果只是直接访问 obj.first.second,而不对 obj.first 进行校验,则有可能抛出错误。

有了可选链运算符(?.),在访问 obj.first.second 之前,不再需要明确地校验 obj.first 的状态,再并用短路计算获取最终结果:文章来源地址https://www.toymoban.com/news/detail-431195.html

let nestedProp = obj.first?.second;

到了这里,关于js获取对象属性值的方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • js之删除对象属性的三种方法 & 判断对象中是否有某一属性的四种方法

    js之删除对象属性的三种方法 判断对象中是否有某一属性的四种方法 示例 1、基础版 2、进阶版 1、删除一个对象上的属性 1.1、delete 语法 delete 对象.属性名 1.2、es6之解构赋值 1.3、es6之反射 语法 Reflect.deleteProperty(对象,属性名) 2、判断对象中是否有某一属性的四种方法 2.1、

    2024年02月13日
    浏览(51)
  • js在数组对象中添加和删除键值对(对象属性)的方法

    添加 1.Object.assign():用法-Object.assign(源对象, {要添加的键值对}) 2.拓展运算符(...):用于取出参数对象所有可遍历属性然后拷贝到当前对象 3.object[key] = value:直接给新的key赋值 删除 1.将属性设置为 undefined:属性本身仍将存在于对象中,它还会改变原始对象。 2.使用 delete 操

    2024年02月14日
    浏览(55)
  • js中对象的属性要注意的点以及在vue中watch对象的属性的方法

    取对象值有两种方式, const obj={ a:\\\'1\\\' } obj.a或者obj[\\\'a\\\'],中括号还可以写成 const name = \\\'a\\\' obj[name]和obj[\\\'a\\\']是一个意思。 然后在vue的watch要监听对象的属性,写法是 watch:{ \\\'obj.a\\\'(new,old){} } 这样的方式。 然后对象的深度拷贝可以通过自己手写递归来实现,也可以通过JSON.parse(JSON.str

    2024年02月21日
    浏览(49)
  • JS 之 事件Event对象详解(属性、方法、自定义事件)

    一、Event对象 1、简介 ​ 事件 event 对象是指在浏览器中触发事件时,浏览器会自动创建一个 event 对象,其中存储了本次事件相关的信息,包括事件类型、事件目标、触发元素等等。浏览器创建完 event 对象之后,会自动将该对象作为参数传递给绑定的事件处理函数,我们可以

    2024年02月09日
    浏览(68)
  • JavaScript string对象(属性,方法)获取图片后缀案例 输入和输出结果转换形式案例

    一、创建string对象 var strOb = new String(\\\"abcefg\\\"); var strOb = String(\\\"abcefg\\\"); var strOb = \\\"abcefg\\\"; 二、属性 length    (字符串长度) 三、方法 1、子字符串位置 indexOf(string, [ index]) string : 查找的字符串的内容,必填项 index:开始查找位置,可有可无 返回值:返回值是查找到的子字符串的位

    2024年02月05日
    浏览(57)
  • Vue3前端开发,如何获取组件内dom对象以及子组件的属性和方法

    Vue3前端开发,借助Ref来获取组件内dom对象,借助defineExpose编译宏可以获取到子组件的属性和方法。 app入口文件,我们作为父组件,在里面调用了自定义组件TestCom.vue。 先做了一个测试,借助于ref来访问自身的dom对象。如图所示是可以拿到的。 ref又称谓钩子函数,在vue2版本中

    2024年01月22日
    浏览(61)
  • 后端用对象接收json时,对象无法获取值的问题

    在项目里做前端传json到后端处理数据时,由于传递的json比较复杂,故用对象进行接收,但在postman测试时发现无论如何对象都没法成功接收值 (这里我直接把接收到的值又回传了,方便直接在postman查看) 问题排查 1.猜测缺少@RequeBody,实际上项目controller层包含了RestControlle

    2024年02月13日
    浏览(41)
  • stream(流) 获取list里面对象的某个值的列表

    — 获取userList里面的name值组成列表 User.java mian 结果

    2024年02月17日
    浏览(44)
  • 小程序-获取input值的方法

    微信小程序-获取input值的方法 1、 bindinput wxml input name=\\\"text_name\\\" type=\\\'text\\\' bindinput=\\\'getValue\\\' placeholder-style=\\\'font-size:28rpx;\\\' placeholder=\\\'请输入信息\\\'/input js 包含value值, cursor 是获取光标的位置。 2、 bindsubmit 当需要提交的表单内容过多时,选择bindsubmit更合适 我们通过input的name字段与之

    2024年02月11日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包