1、简洁表达法。

当属性名与属性值相同时,可省略属性值;例如:{name : name}可以写成 {name}

属性方法中,可省略冒号与function,直接 属性名(){}即可。例如{say : function(arr){}}可以写成{say(arr){}}

es5的写法:

            //es5:
const getUserInfo = (id = 1) => {
//ajax ...
const name = 'xiaoming';
const age = 10; return{
name: name,
age: age,
say: function(){
console.log(this.name + this.age);
}
};
};
const xiaoming = getUserInfo();

es6的写法:

            //es6:
const getUserInfo1 = (id = 1) => {
//ajax ...
const name = 'xiaoming';
const age = 10;
return{
name,
age,
say(){
console.log(this.name + this.age);
}
};
};
const xiaoming1 = getUserInfo();

2、属性名表达式。

可以将声明的变量用中括号 [] 包裹,作为属性名。也可以是表达式或模板字符串。

            const obj = {
a:1,
$abc:2,
'aflajroi23#$T':3 //不符合命名规范时要用单引号或者双引号括起来,否则报错
};
console.log(obj.a); //1
console.log(obj.$abc); //2
console.log(obj['aflajroi23#$T']); //3,要用中括号将带引号的属性名括起来才可以得到属性值,否则报错

属性名表达式的三种写法:

 (1)、['变量名']
(2)、简单的表达式: ['xxx'+'yyy'+123],属性名为xxxyyy123
(3)、模板字符串:[`${变量名}123`],属性名为变量名123
            const key = 'age';
const xiaohong = {
name:'xiaohong',
//属性名表达式的三种写法
[key]:14,
['abc'+'bbc'+123]:23 , //简单的表达式,该属性名为abcbbc123
[`${key}123`]:34 //模板字符串,该属性名为age123
}

3、属性名表达式与简洁表达式,不能同时使用,会报错。

ES6扩展——对象的扩展(简洁表示法与属性名表达式)的更多相关文章

  1. ES6中对象的扩展

    ES6不仅为字符串.数值和数组带来了扩展,也为对象带来了很多新特性.这一节,我们来一起学习一下对象的扩展. 对象的传统表示法 我们回顾一下,对象的传统表示法: let person = { " ...

  2. ES6学习笔记--属性名表达式

    1.直接用标识符作为属性名: obj.foo = true 2.用表达式作为属性名: obj['a'+'bc'] = 123 //相当于 obj['abc'] = 123 3.ES6 允许字面量定义对 ...

  3. ES6 对对象的扩展

    1.对象类别 普通对象:具有JavaScript对象的所有默认内部行为 特异对象: 具有某些与默认行为不符的内部行为 标准对象: ECMAScript 6 规范中新定义的对象,例如Array,Date ...

  4. es6中的属性名表达式

    代码如下: 问题: 为什么我可以这样给obj1对象添加动态属性? 为什么我最终的结果是只添加了right属性? 解答: 1. 第一个问题解答如下: 我们知道在es5中给对象添加属性有两种方法,一种是通 ...

  5. 关于es6中对象的扩展

    1.Object.is() es5比较两个值是否相等,只有两个运算符,相等(==) 和 严格相等(===),他们都有缺点,前者会自动转换数据类型,后者的NaN不等于自身,以及+0 等于 -0.es6提 ...

  6. ES6 之 对象的扩展

    1.Object.is() 判断俩个值是否相等 +0 不等于 -0 NaN 等于自身 console.log(Object.is('foo','foo')); // true console.log( ...

  7. web前端之es6对象的扩展

    1.属性的简洁表示法 2.属性名表达式 表达式作为对象的属性名 3.方法的 name 属性 例如:函数的name 属性,返回函数名. 4.Object.is() ES 比较两个值是否相等,只有两个运算 ...

  8. es6学习笔记--字符串&数值&数组&函数&对象的扩展

    这几天抽空学习了es6语法,关于字符串,数值,数组,函数以及对象的扩展,看到es6标准入门这本书,里面讲的扩展特别多,我认为有几部分在项目上用不到,就挑有用的当笔记学习了. 字符串的扩展 str.in ...

  9. es6对象的扩展

    对象(object)是 JavaScript 最重要的数据结构之一. object 在es6中新增了很多便利的方法 在es6中允许直接写入变量和方法的名称直接作为对象的属性 let x =1 ,y=2 ...

随机推荐

  1. go反射原理

    go反射原理 本文基于go1.13.15 1.go汇编 1.1 基本语法 go采用plan9的汇编器完成汇编,有下面几个重要的伪寄存器 FP: Frame pointer: 局部变量访问 PC: Pr ...

  2. fatal error: all goroutines are asleep - deadlock!

    一.问题截图 fatal error: all goroutines are asleep - deadlock! goroutine 1 [chan receive]: main.main() /U ...

  3. 【知识详解】Https详解

    Https详解 1.什么是Https Http + SSL = Https 一句话说:Https是身披SSL的Http,当使用了SSL后,Http先和SSL通信,再由SSL和TCP通信, 2.为什么需 ...

  4. [IOI2005]mea

    IOI 读完题,感觉这个题并不是很难,那我是不是可以去IOI了: 最先考虑暴力,发现完全行不通,所以,我们考虑其他方法.突然发现:其实在确定 \(s_1\) 的时候,整个序列就可以确定了,所以我们考虑 ...

  5. 流暢的pyhton4---數據庫備份

    一.linux數據庫備份腳本 1.数据库备份,命令如下: ./pg_dump -h localhost -p 5432 -U postgres -W -F c -b -v -f "/opt/ ...

  6. python内置函数--- hasattr、setattr、getattr

    1.描述 hasattr() 函数用于判断对象是否包含对应的属性. 语法 hasattr 语法: hasattr(object, name) 2.描述 setattr() 函数对应函数 getattr ...

  7. 快速设置 JAVA_HOME

    快速设置 JAVA_HOME %SystemRoot%\System32\rundll32.exe sysdm.cpl,EditEnvironmentVariables

  8. RESTful API 设计风格

    HTTP常用动词 GET(SELECT):从服务器取出资源(一项或多项). POST(CREATE):在服务器新建一个资源. PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源). ...

  9. 重定向">" 及">>"符号的简单运用

    1.command > file 将输出重定向(可理解写入)到 file. 2.command >> file  将输出以追加的方式重定向到 file,也就是写入到 file的尾端. ...

  10. 三年Android开发,月薪一万二,不敢跳槽,每天都很焦虑

    在我们的身边,存在一个普遍现象:很多人从事Android开发工作多年,走过的弯和坎,不计其数,经历的心酸难与外人道也.可是技术确难以提升.止步不前,薪资也只能看着别人水涨船高,自己却没有什么起色. 虽 ...