一小时学会ECMAScript6新特性(一)
ECMAScript 简介
简称es,是一套标准,javascript就是使用这套标准的语言。主流的浏览器使用的是ECAMScript5,ECAMScript6(ECAMScript2015)是一涛新的标准,添加了新的特性。借助bable和jspm可以使用它的新特性。
1、块的作用域
作用域,即变量有效的范围(声明的变量在什么地方可以使用)。之前js只有全局作用域和函数作用域,es6中有了块级作用域。
只能在块中访问。
另外var
命令会发生”变量提升“现象,即变量可以在声明之前使用,值为undefined
。这种现象多多少少是有些奇怪的,按照一般的逻辑,变量应该在声明语句之后才可以使用。
2、恒量(常量)
const声明恒量,声明的恒量不能被分配新的值。
不能重新分配恒量的值,单可以改变其值。如下
3、解构数组(分解其解构)
把 ['蛋糕', '咖啡', '苹果'] 数组分配给其他变量,老方法如下:
新方法如下:
结果:
4、解构对象(分别使用对象中的属性值)
5、模板字符串 Template Strings
旧方法:
新特性:
结果:
自动识别换行,方便我们多行显示
6、带标签的模板字符串 Tagged Templates
可以在模板字符前面插入一个标签来处理模板字符串里边的字符,这里的标签其实就是一个函数。
raw中表现如下:
早餐后加\n换行 raw中是没有处理的
输出模板字符串的内容:
7、判断字符串里是否包含其他字符串(includs、startsWith、endsWith)
includs判断一个字符串中是否包含另一个字符串
startsWith判断某个字符串中是不是已另一个字符串开头
endsWith判断某个字符串中是不是已另一个字符串结尾
8、默认参数 Default Parameter Values
可以为定义的函数的参数设置默认值
9、展开操作符 spread(...)
比如我们要展开数组中的每一项:
第一个输出的是数组,第二个输出的是数组中的内容,他的功能显而易见了。
那么想把fruit展开放入另一个数组怎么做呢:
10、剩余操作符 Rest(...)
一般用在函数的参数里边:
上面函数出了可以传dessert和drink两个参数之外, 还可传其他参数,其他参数都会被放在foods的数组里边
当然这边还可以使用spread操作符来展开:
11、解构参数 Destructured Parameters
12、函数的名字(name属性)
使用匿名函数的方式,name属性函数的名字是变量名
声明函数名字时,name属性对应函数的函数名(优先级)
13、箭头函数 Arrow Functions
普通箭头函数
多个参数的箭头函数
14、对象表达式
声明一个对象,对象内容可以直接引用定义的变量值:
之前需要这样引用
es6里面不需要冒号后面的东西
在对象中添加一个方法之前是
let dessert = '蛋糕', drink = '咖啡'; let foods = {
dessert,
drink,
breakfast: function(){console.log(1)}
} console.log(foods)
es6中可以省掉function
let dessert = '蛋糕', drink = '咖啡'; let foods = {
dessert,
drink,
breakfast(){console.log(1)}
}
console.log(foods)
一小时学会ECMAScript6新特性(一)的更多相关文章
- 一小时学会ECMAScript6新特性
ECMAScript 简介 简称es,是一套标准,javascript就是使用这套标准的语言.主流的浏览器使用的是ECAMScript5,ECAMScript6(ECAMScript2015)是一涛新 ...
- 一小时学会ECMAScript6新特性(二)
1.对象属性名 es5中我们为一个对象添加属性可以用如下代码: let foods = {}; foods.dessert = '蛋糕'; console.log(foods) 但是属性名中间有空格则 ...
- ECMAScript6新特性之let、const
第一次在博客园写博客,想把自己每一天学习到的知识点记录下来,心里有点紧张(PS:不知道自己能不能写好......嘿嘿).言归正传,咱们先来说说"ECMAScript"这到底是啥玩意 ...
- 轻松学会ES6新特性之生成器
生成器虽然是ES6最具魔性的新特性,但也是最难懂得的一节,笔者写了大量的实例来具体化这种抽象的概念,能够让人一看就懂,目的是希望别人不要重复或者减少笔者学习生成器的痛苦经历. 在说具体的ES6生成器之 ...
- web全栈架构师[笔记] — 01 ECMAScript6新特性
ES6新特性 一.变量 var:重复定义不报错:没有块级作用域:不能限制修改 let:变量,不能重复定义,有块级作用域 const:常量,不能重复定义,有块级作用域 二.函数/参数 箭头函数——简写: ...
- ECMAScript6 | 新特性(部分)
新特性概览 参考文章:http://www.cnblogs.com/Wayou/p/es6_new_features.html 这位前辈写的很好,建议深入学习 ———————————————————— ...
- ECMAscript6新特性之解构赋值
在以前,我们要对变量赋值,只能直接指定值.比如:var a = 1;var b = 2;但是发现这种写法写起来有点麻烦,一点都不简洁,而在ECMAScript6中引入了一种新的概念,那就是" ...
- ECMAScript6新特性之Array API
一 填充数组 var arr = new Array(5); arr.fill('abc',2,4); console.log('Array.prototype.fill',arr); // [und ...
- ECMAScript6新特性之Reflect
一 Reflect.ownKeys()获取对象属性. 可枚举的.不可枚举的.自有的.继承的. let fruit = { '2' : 'mango', [Symbol.for('pink')] : ' ...
随机推荐
- nginx 容器反向代理网址的设置
先讲一下场景: nginx 容器要和SpringBoot 容器部署在一台机器上, nginx 为 SpringBoot 提供反向代理, 需要在 nginx.conf 中写上 SpringBoot 的 ...
- Machine Learning 思维导图
Feature Enigneering 经用 sns.distplot 测试 一个Series 做 StandardScaler().fit_transform(Seriese) 之前和之后的图形形状 ...
- 用SQL表达连接与外连接
关系代数运算中,有连接运算,又分为θ连接和外连接 标准SQL语言中连接运算通常是采用 SELECT 列名[[,列名]...] FROM 表名1,表名2,... WHERE 检索条件; SQL的高级语法 ...
- vue适配移动端px自动转化为rem
1.下载lib-flexible 我使用的是vue-cli+webpack,所以是通过npm来安装的 npm i lib-flexible --save 2.引入lib-flexible 在main. ...
- centos7 安装软件指南
1. 安装Scrapy: 首先确保依赖已经安装: yum groupinstall -y development tools yum install -y epel-release libxslt-d ...
- 前后端分离--ajaxUpload异步上传文件成功,前端获取数据却失败的解决方案
转载:https://blog.csdn.net/baidu_32809053/article/details/78709951
- 题解-HAOI2018全套
去冬令营转了一圈发现自己比别人差根源在于刷题少,见过的套路少(>ω<) 于是闲来无事把历年省选题做了一些 链接放的都是洛谷的,bz偷懒放的也是链接 AM.T1 奇怪的背包 Problem ...
- 利用android studio 生成 JNI需要的动态库so文件
JNI: Java Native Interface, 提供了java语言和其他语言(例如c和c++)进行相互调用的方式. 本文是用java调用c生成的so模式.其中,编译so文件过程如下: 1) ...
- STM32 USB 鼠标+键盘 串口控制
*MOS0101000000# 鼠标左键按下 *MOS0102000000# 鼠标右键按下 *MOS0103000000# 鼠标中键按下 *MOS0100000000# 鼠标抬起 *MOS01000a ...
- selenium对百度进行登录注销
#百度登录退出demo import time from selenium import webdriver from selenium.webdriver.common.action_chains ...