ES6-对象字面量的增强

一.属性、方法的简洁表示法

键名和变量/常量名一样的时候,可以只写一个;我们在对象解构赋值时,等号左边也可以这样;

方法可以省略冒号和function关键字

复制代码
        const sex = 'male';
        const obj = {
            sex,//相当于sex:sex
            age: 18,
            // play:function() {}
            play(){}
        }
复制代码

二.方括号语法

复制代码
        //目的在对象外面添加一个age属性,属性值为18
        const prop = 'age';
        // const obj = {};
        // obj.[prop] = 18;//点语法和方括号语法不能一起用,报错
        //----------------------------------------------
        // obj.prop = 18;
        // console.log(obj);//{prop:18}
        //目的在对象里面添加一个age属性,属性值为18
        const obj = {
            [prop]: 18//方括号语法可以写在对象字面量中
        }
        console.log(obj);//{age: 18}
复制代码

 三.方括号里面可以放什么:凡是可以求得一个值的都可以放进去

复制代码
        const prop = 'age';
        const fn = function () {
            return 'sex';
        }
        const obj = {
            [prop]: 18,
            [fn()]: '',
            ['ho' + 'bby']: '篮球'
        }
        console.log(obj);//{age: 18,sex:'男',hobby:'篮球'}
复制代码

四.其他注意点

1.属性名默认是字符串类型的,符合标识符命名规范就可以省略‘’

2. 如果对象的属性键名不符合JS标识符命名规范,则这个键名必须用引号包裹

3.如果属性名不符合JS标识符命名规范 ,则必须用方括号的写法来访问

4.属性名符合命名规范:对象访问属性obj['age']或者obj.age

5.属性名不符合命名规范:对象访问属性只有obj['1age']一种方法

6.同一属性不可以同时使用简洁表达式和方括号语法;

7.属性名可以用纯数字,且不用加''包裹,如果是数字开头和其他字符结合要加''包裹;访问时:

复制代码
        const obj = {
            0: 'a',
            1: 'b',
            length: 2
        }
        console.log(obj['0']);
        console.log(obj[0]);
        console.log(obj.0);//报错
复制代码

 

 

        const age = 18;
        const obj = {
            [age]//报错
        }

8.方括号与点语法看这个图明明白白

 

                                                         ----如果错误,还请指出~

posted @   游千山  阅读(54)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示