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新特性(一)的更多相关文章

  1. 一小时学会ECMAScript6新特性

    ECMAScript 简介 简称es,是一套标准,javascript就是使用这套标准的语言.主流的浏览器使用的是ECAMScript5,ECAMScript6(ECAMScript2015)是一涛新 ...

  2. 一小时学会ECMAScript6新特性(二)

    1.对象属性名 es5中我们为一个对象添加属性可以用如下代码: let foods = {}; foods.dessert = '蛋糕'; console.log(foods) 但是属性名中间有空格则 ...

  3. ECMAScript6新特性之let、const

    第一次在博客园写博客,想把自己每一天学习到的知识点记录下来,心里有点紧张(PS:不知道自己能不能写好......嘿嘿).言归正传,咱们先来说说"ECMAScript"这到底是啥玩意 ...

  4. 轻松学会ES6新特性之生成器

    生成器虽然是ES6最具魔性的新特性,但也是最难懂得的一节,笔者写了大量的实例来具体化这种抽象的概念,能够让人一看就懂,目的是希望别人不要重复或者减少笔者学习生成器的痛苦经历. 在说具体的ES6生成器之 ...

  5. web全栈架构师[笔记] — 01 ECMAScript6新特性

    ES6新特性 一.变量 var:重复定义不报错:没有块级作用域:不能限制修改 let:变量,不能重复定义,有块级作用域 const:常量,不能重复定义,有块级作用域 二.函数/参数 箭头函数——简写: ...

  6. ECMAScript6 | 新特性(部分)

    新特性概览 参考文章:http://www.cnblogs.com/Wayou/p/es6_new_features.html 这位前辈写的很好,建议深入学习 ———————————————————— ...

  7. ECMAscript6新特性之解构赋值

    在以前,我们要对变量赋值,只能直接指定值.比如:var a = 1;var b = 2;但是发现这种写法写起来有点麻烦,一点都不简洁,而在ECMAScript6中引入了一种新的概念,那就是" ...

  8. ECMAScript6新特性之Array API

    一 填充数组 var arr = new Array(5); arr.fill('abc',2,4); console.log('Array.prototype.fill',arr); // [und ...

  9. ECMAScript6新特性之Reflect

    一 Reflect.ownKeys()获取对象属性. 可枚举的.不可枚举的.自有的.继承的. let fruit = { '2' : 'mango', [Symbol.for('pink')] : ' ...

随机推荐

  1. 通过DeviceIoControl读磁盘的方式读取独占文件内容

    前言 windows操作系统中常见的一个文件存储系统是NTFS.在这个文件系统中MFT是它的核心.             图一 MFT是一个数据结构,上图是它的结构,它主要用来存放每个文件和目录在磁 ...

  2. Machine Learning 思维导图

    Feature Enigneering 经用 sns.distplot 测试 一个Series 做 StandardScaler().fit_transform(Seriese) 之前和之后的图形形状 ...

  3. 第31月第10天 tableview头部空白 Other Linker Flags rtmp

    1.ios10 tableview头部空白 if (@available(iOS 11.0, *)) { self.tableView.contentInsetAdjustmentBehavior = ...

  4. java字符串转为Map类型:split()方法的应用

    方法一: package com.thinkgem.jeesite.modules.socketTest.demo2; import java.util.HashMap; import java.ut ...

  5. ARDUINO驱动LCD1602 (利用库函数)

    LCD 1602简介 工业字符型液晶,能够同时显示16x02即32个字符.(16列2行) 1602液晶也叫1602字符型液晶,它是一种专门用来显示字母.数字.符号等的点阵型液晶模块.它由若干个5X7或 ...

  6. Selenium-WebDriver框架常用基本操作

    1.基础元素定位的八种方法 WebDriver driver = new ChromeDriver(); WebElement element = new WebElement(); 1.1 By.i ...

  7. MySQL---DDL+DQL---(四)

    三.对数据库表记录进行操作(修改DDL) 1.插入记录:insert 语法:insert into 表 (列名1,列名2,列名3..) values (值1,值2,值3..);--向表中插入某些列in ...

  8. 软件工程作业-(third)

    1.选题目(1) 最大连续子数组和(最大子段和) 问题:给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],-,a[n],求该序列如a[i]+a[i+1]+-+a[j]的子段和的最大值. ...

  9. C++的变量初始化

    C++中变量的初始化有很多种方式,如:默认初始化,值初始化,直接初始化,拷贝初始化,列表初始化. 1.默认初始化:默认初始化是指定义变量时没有指定初值时进行的初始化操作. 如:int a:这些变量被定 ...

  10. Redis在Linux中安装使用

    一.安装$ wget http://download.redis.io/releases/redis-x.x.x.tar.gz $ tar xzf redis-x.x.x.tar.gz $ cd re ...