ES6为一些已有的功能提供了非破坏性更新,这类新语法能做的事情其实用ES5也可以做,只是会稍微复杂一些,称之为语法糖。

对象属性的简洁表示法

声明的对象中包含若干属性,其属性值由变量表示,且变量名和属性名一样的只写一个变量名即可。比如,var a=[], var obj={a:a},可以简写为var obj={a};

箭头函数

ES6 为我们提供了一种写匿名函数的新方法就是箭头函数,不需要使用function关键字,其参数和函数体之间以=>相连接。

箭头只允许它们赋值给一个变量;

箭头头函数不能用做构造函数,你不能对箭头函数使用new关键字;

箭头函数也没有prototype属性;

箭头函数绑定了词法作用域,不会修改this的指向。

箭头函数返回值为一个对象时,你需要用小括号括起你想返回的对象。

解构赋值

对象解构:对象赋值给用大挂号包裹变量,对象的属性会把对应的属性值赋值给变量。比如

let person = { name: '李白', age: 18 };

let { name, age } = person;

console.log(name); // '李白'

console.log(age);  //18

数组解构,允许你跳过你不想用到的值,在对应地方留白即可,比如

let [a,b,c]=[1,2,3];
console.log(a)//1
console.log(b)//2
console.log(c)//3

块级作用域

const具有和let一致的块作用域,区别在于const声明的变量在声明时必须赋值,不能再被赋予别的值,否则会报错。

通过const声明的变量值并非不可改变,声明的数组本身还是可以添加元素,只是数组的指向不变,引用不变,即内存地址不变。

if(true){
let a=10;
console.log(a);//10
}
console.log(a);//undefined

模板字符串

用反撇号声明,通过模板字符串,你可以在模板中插入任何JavaScript表达式了;插入变量${变量},因为模板字符串本身也是JavaScript表达式,故可以嵌套模板字符串;模板字符串默认支持多行。

var str = `this is ${name}`;

拓展运算符

...,可以把任意可枚举对象转换为数组

把arguments对象换成数组,arguments对象是函数的参数的类数组,包含传递给函数的每个参数,arguments[0],就是函数第一个参数

把字符串转换为由每一个字母组成的数组,

把数组中嵌套的数组合并在一个数组中

function num(n1,n2,n3,n4,n5){
console.log(n1,n2,n3,n4,n5)
}
num(1,2,3,4,5)
const arr=[100,200,300,400,500]
num(arr[0],arr[1],arr[2],arr[3],arr[4])// 100 200 300 400 500
num(...arr) // 100 200 300 400 500

es6语法糖的更多相关文章

  1. ES6 语法糖

    重新认识ES6中的语法糖:https://segmentfault.com/a/1190000010159725

  2. ES6语法糖集锦

    sublime3安装Es6插件 javascriptNext,然后安装即可 Java​Script​Next - ES6 Syntax()高亮插件 -------------------------- ...

  3. 常用处理数据用法es6 语法糖总结

    一 循环(数组 ,集合)   1 forEach-----------可以遍历得到vaue和index   const arr = ['red', 'green', 'blue'];arr.forEa ...

  4. ES6深入浅出-3 三个点运算 & 新版字符串-1.函数与对象的语法糖

    主要讲的内容 时间充裕的话就讲,模板字面量 默认参数值 首先讲es6之前,我们是怎么做的.例如我们要写一个求和的函数, 请两个参数的和,但是如果有的人就是穿一个参数呢? 那么b没有传值,b的值是多少呢 ...

  5. ES6语法的新特性

    ES6 就是ECMAScript 6是新版本JavaScript语言的标准.虽然目前已经更新到ES7,但是很多浏览器还不知处ES7语法,该标准仍在更新中,但目前部门网站都指出ES6的语法.目前ES6也 ...

  6. 详解es6 class语法糖中constructor方法和super的作用

    大多数面向对象的编程语言都支持类和类继承的特性,而JS却不支持这些特性,只能通过其他方法定义并关联多个相似的对象,这种状态一直延续到了ES5.由于类似的库层出不穷,最终还是在ECMAScript 6中 ...

  7. ES6之对象的语法糖

    本文介绍下ES6中对象的一些拓展功能. 这三个语法糖在实际的项目开发中经常会见到.

  8. ES6 class 语法糖不能直接定义原型上的属性

    今天注意到两个东西: 1.为了模拟面向对象,JavaScript的class语法糖屏蔽了原型的概念 class A{ a = 1   // 注意!!这里定义的不是在prototype上的属性,而是给实 ...

  9. 把JavaScript代码改成ES6语法不完全指南

    目录 * 核心例子 * 修改成静态变量(const)或块级变量(let) * 开始修改 * 疑问解释(重复定义会发生什么) * 疑问解释(let的块级作用域是怎样的) * 疑问解释(const定义的变 ...

随机推荐

  1. shell编程之算术扩展(引号、命令替换、算术扩展)

    1.单引号 .双引号.反引号的区别 单引号:忽略所有特殊字符 双引号:忽略大部分特殊字符($  `等字符除外) [root@tlinux shell]# echo '*' * [root@tlinux ...

  2. Linux mysql 修改密码 三种方式(转载)

    注明:本文为转载,原文地址:https://www.cnblogs.com/chuckjam/archive/2018/08/10/9456255.html 前言 有时我们会忘记Mysql的密码,或者 ...

  3. 二:Redis:(REmote DIctionary Server)远程字典服务器

    Redis是完全开源免费的,用C语言编写的,遵循BSD协议,是一个高性能的(key-value)分布式内存数据库,基于内存运行,并支持持久化的NOSQL数据库,是当前最热门的NOSQL数据库之一,也被 ...

  4. python <12> socket 编程

    1.socket编程需要两个部分 服务器与客户端我们的python中调用 socket包就不需要自己写协议了(socket编程中windows 与Linux中的效果是完全不相同了,次代码最好是放在Li ...

  5. linux文件描述符、软硬连接、输入输出重定向

    引用链接:https://blog.csdn.net/qq769651718/article/details/79459346 文件描述符的作用: 文件描述符是linux操作系统中特有的概念.其相当于 ...

  6. 科普干货|漫谈鸿蒙LiteOS-M与HUAWEI LiteOS内核的几大不同

    摘要:鸿蒙和LiteOS的内核都是一样的名字,可它们究竟有什么不同呢?一起来对比一下文件吧! HarmonyOS系统 HarmonyOS是一款"面向未来".面向全场景(移动办公.运 ...

  7. 设计模式(一)--工厂模式(Go实现)

    package Factory import "fmt" type Restaurant interface { GetFood() } type Donglaishun stru ...

  8. Flink处理函数实战之三:KeyedProcessFunction类

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  9. js 进度条效果

    <!DOCTYPE html><html><head><meta charset="utf-8"><title>< ...

  10. C++中内存布局 以及自由存储区和堆的理解

    文章搬运自https://www.cnblogs.com/QG-whz/p/5060894.html,如有侵权请告知删除 当我问你C++的内存布局时,你大概会回答: "在C++中,内存区分为 ...