es6语法糖
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语法糖的更多相关文章
- ES6 语法糖
重新认识ES6中的语法糖:https://segmentfault.com/a/1190000010159725
- ES6语法糖集锦
sublime3安装Es6插件 javascriptNext,然后安装即可 JavaScriptNext - ES6 Syntax()高亮插件 -------------------------- ...
- 常用处理数据用法es6 语法糖总结
一 循环(数组 ,集合) 1 forEach-----------可以遍历得到vaue和index const arr = ['red', 'green', 'blue'];arr.forEa ...
- ES6深入浅出-3 三个点运算 & 新版字符串-1.函数与对象的语法糖
主要讲的内容 时间充裕的话就讲,模板字面量 默认参数值 首先讲es6之前,我们是怎么做的.例如我们要写一个求和的函数, 请两个参数的和,但是如果有的人就是穿一个参数呢? 那么b没有传值,b的值是多少呢 ...
- ES6语法的新特性
ES6 就是ECMAScript 6是新版本JavaScript语言的标准.虽然目前已经更新到ES7,但是很多浏览器还不知处ES7语法,该标准仍在更新中,但目前部门网站都指出ES6的语法.目前ES6也 ...
- 详解es6 class语法糖中constructor方法和super的作用
大多数面向对象的编程语言都支持类和类继承的特性,而JS却不支持这些特性,只能通过其他方法定义并关联多个相似的对象,这种状态一直延续到了ES5.由于类似的库层出不穷,最终还是在ECMAScript 6中 ...
- ES6之对象的语法糖
本文介绍下ES6中对象的一些拓展功能. 这三个语法糖在实际的项目开发中经常会见到.
- ES6 class 语法糖不能直接定义原型上的属性
今天注意到两个东西: 1.为了模拟面向对象,JavaScript的class语法糖屏蔽了原型的概念 class A{ a = 1 // 注意!!这里定义的不是在prototype上的属性,而是给实 ...
- 把JavaScript代码改成ES6语法不完全指南
目录 * 核心例子 * 修改成静态变量(const)或块级变量(let) * 开始修改 * 疑问解释(重复定义会发生什么) * 疑问解释(let的块级作用域是怎样的) * 疑问解释(const定义的变 ...
随机推荐
- 用 Cloud Performance Test怎么录制测试脚本
Cloud Performance Test 云压力测试平台(以下简称:CPT)可以提供一站式全链路云压力测试服务,通过分布式压力负载机,快速搭建系统高并发运行场景,按需模拟千万级用户实时访问,并结合 ...
- ceph卡在active+remapped状态
最近看到了有人的环境出现了出现了卡在active+remapped状态,并且卡住不动的状态,从pg的状态去看,这个pg值分配了主的pg,没有分配到副本的osd,集群的其他设置一切正常 这个从网上搜寻到 ...
- 手把手教你5分钟从零开发一款简易的IDEA插件!项目经验/毕设不愁了!
我这个人没事就喜欢推荐一些好用的 IDEA 插件给大家.这些插件极大程度上提高了我们的生产效率以及编码舒适度. 不知道大家有没有想过自己开发一款 IDEA 插件呢? 我自己想过,但是没去尝试过.刚好有 ...
- [LeetCode题解]109. 有序链表转换二叉搜索树 | 快慢指针 + 递归
题目描述 给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树. 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1. 示例: 给定的有序链表: ...
- [LeetCode题解]23. 合并K个升序链表 | 分治 + 递归
方法一:分治 + 递归 解题思路 在21. 合并两个有序链表,我们知道如何合并两个有序链表.而本题是合并 k 个有序链表,可以通过大问题拆分成小问题解决,即把 k 个链表,拆分成 k/2 个链表组,俩 ...
- 解决Ubuntu配置nginx出现的问题
Ubuntu18.04配置nginx出现的各种错误 缺少pcre库 编译nginx 出现错误 安装pcre库,出现错误 手动编译安装pcre库 (1)下载并解压pcre库 wget https://f ...
- 好学易懂 从零开始的插头DP(一)
好学易懂 从零开始的插头DP(一) 写在前面 这是一篇,以蒟蒻视角展开的梳理总结.更改了一些顺序,变化了一些细节.方便蒟蒻学习理解(起码本蒟蒻是这样).大佬们可以直接看其它大佬的博客,可以学的更快. ...
- php 判断网站是http还是https
//判断是http还是https $http_type = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (i ...
- 如何使用ABBYY FineReader 处理无法识别的字符?
在识别PDF文档时,我们可能会遇到文档中存在多种语言.多种不同类型文字字符的情况.在ABBYY FineReader 15(Windows系统)OCR文字识别软件的默认语言数据下,可能无法识别PDF文 ...
- [转载]Windows环境下 Hadoop Error: JAVA_HOME is incorrectly set. 问题
最近尝试在windows开发MR程序并且提交Job,在解压缩好hadoop,配置好环境变量后, 打开cmd 输入hadoop version 的时候出现以下错误: Error: JAVA_HOME i ...