参考: http://es6.ruanyifeng.com/

总结学习

JavaScript语言下一代标准,2015年6月正式发布。

1.let和const命令

let用作变量声明,只在代码块内有效

{let a = 1} console.log(a) //Error

可用于for循环

var a=[];
for(var i=0;i<10;i++){
  a[i]=function(){
    console.log(i);
  }
}
a[6](); //10

let方法

var a=[];
for(let i=0;i<10;i++){
  a[i]=function(){
    console.log(i);
  }
}
a[6](); //6

不过let不存在变量提升,不允许重复声明

const命令,常量声明,一旦声明不允许修改,声明的时候需要理解初始化,

2.字符串的扩展

at() ES5提供chartAt方法返回字符串给定位置的字符,该方法不能识别码点大于0xFFFF的字符。at方法,可以识别Unicode编号大于0xFFFF的字符,返回正确的字符。

 repeat() 方法返回一个新字符串,表示将原字符串重复n次。

3.数值的扩展

Number.isFinite()用于检查一个数值是否为有限的

Number.isNaN() 用于检查一个值是否为NaN

Number.isInteger()用来检查一个值是否为整数

Number.EPSILON 新增了一个极小的常量

Number.MAX_SAFE_INTEGER和Number.MIN_SAFE_INTEGER 新增数值上下限

Math.trunc方法用于去除一个数的小数部分,返回整数部分

Math.sign() 方法用来判断一个数到底是整数、负数、还是零

Mah.cbrt() 方法用于计算一个数的立方根

4.数组的扩展

Array.from() 对象用于将类数组或可遍历的对象 转为真正的数组

Array.of()用于将一组值转为数组  Array.of(1,22,33) //[1,22,33];

find() 方法用于找出第一个符合条件的数组成员

findIndex() 方法用于返回第一个符合条件的数组成员的位置

fill() 方法使用给定值填充一个数组

5.函数的扩展

Object.is()比较两个值是否相等

Object.assign()用于对象的合并

6.Module

export命令用于规定模块的对外接口

import命令用于输入其他模块提供的功能

export default命令为模块指定默认输出

7.set

set:类似于数组,成员值唯一,本身是构造函数,用于生成set数据结构

var s = new Set();
            s.add(3);
            s.add(4);
            s.add(3);
            console.log(s); //Set {3, 4}

通过add方法添加成员,结果set结构不会出现重复的值

     var arr = [1,1,2,4,6,8,6];
            var setArray = new Set(arr);
            console.log(setArray); //Set {1, 2, 4, 6, 8}
            console.log(setArray.size) //5

set能接受数组作为参数,利用set去掉数组的重复成员 :[...new Set(array)]

set结构的属性 1,Set.prototype.constructor 构造函数默认set 2,Set.prototype.size 返回Set实例的成员总数

set结构的方法

1,add() 添加某个值,返回set结构本身。

2,delete() 删除某个值,返回一个布尔值,表示删除是否成功

3,has() 返回一个布尔值, 表示该值是否为Set成员

4,clear() 清除所有成员,没有返回值

     var setOpa = new Set();
            setOpa.add(2);setOpa.add(3);
              console.log(setOpa); //Set {2, 3}
            setOpa.delete(2);
              console.log(setOpa) //Set {3}
              console.log(setOpa.has(3)) //true
              console.log(setOpa.has(2)) //false
            setOpa.clear();
              console.log(setOpa);//Set {}

Array.from方法可以将set结构转为数组

     var setArrTran = new Set([1,1,4,3,5]);
            console.log(Array.from(setArrTran)); //[1, 4, 3, 5]

遍历操作: keys() 返回键名的遍历器, values()返回键值的遍历器, entries()返回键值对的遍历器, forEach() 使用回调函数遍历每个成员

    var setFor = new Set([1,2,4]);
            setFor.forEach((value,index) => {
                console.log(value * 2);
            });

       //2

     //4

//8

7.Map

map:类似对象,也是键值对的集合,但是键名的范围不限于字符串, 其他和Set类似

参考: http://es6.ruanyifeng.com/

ES6 语法简介的更多相关文章

  1. ES6常用语法简介import export

    ES6常用语法简介import export let与var用法区别 //var var a = []; for (var i = 0; i < 10; i++) { a[i] = functi ...

  2. freemarker语法简介

    ftl是一种模板标记语言,用于渲染数据,输入html结构.语法简介如下: ${book.name} ${book.name?if_exists} //值是否存在 ${book.name??} //值是 ...

  3. es6语法重构react代码

    1.使用React.Component创建组件,需要通过在constructor中调用super()将props传递给React.Component.另外react 0.13之后props必须是不可变 ...

  4. Android系统Recovery工作原理之使用update.zip升级过程---updater-script脚本语法简介以及执行流程(转)

    目前update-script脚本格式是edify,其与amend有何区别,暂不讨论,我们只分析其中主要的语法,以及脚本的流程控制. 一.update-script脚本语法简介: 我们顺着所生成的脚本 ...

  5. vue 2.0 无法编译ES6语法

    # vue2.0 webpack 无法编译 ES6 语法 之前在使用 vue 1.x 时用 vue-loader@8.0.0 版本可以正常打包vue的代码,包括ES6语法也能正常转为ES5语法,但是当 ...

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

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

  7. 让intellij idea 14 支持ES6语法

    用eclipse做前端开发,用到了webpack,结果各种依赖导致软件卡的一比,简直不能动!虽然在同事的帮忙下,修改了一下配置,但仍然卡的没脾气.改用intellij idea 14解决了卡的问题,但 ...

  8. .vue文件在webstorm中es6语法报错解决方法

    1 语法支持es6设置 Preferences > Languages & Frameworks > JavaScript 把 Javascript Language versio ...

  9. webpack打包不识别es6语法的坑

    今天Vue项目npm run build 后webpack,报错uglifyjs,自己研究了一下,翻译过来,意思是不识别项目中写的高级语法,这里要把项目里es6语法转es5让浏览器识别, 也就是web ...

随机推荐

  1. 分布式搜索elasticsearch 索引文档的增删改查 入门

    1.RESTful接口使用方法 为了方便直观我们使用Head插件提供的接口进行演示,实际上内部调用的RESTful接口. RESTful接口URL的格式: http://localhost:9200/ ...

  2. ASP.NET MVC- JSON ,Jquery, State management and Asynch controllers

    一.JSON  MVC And JQuery In case you are new to JSON please read this before moving ahead with this la ...

  3. iOS 检测网络状态

    一般有两种方式,都是第三方的框架,轮子嘛,能用就先用着,后面再优化. 一:Reachability 1.首先在AppDelegate.h添加头文件"Reachability.h", ...

  4. Shiro 源码分析

    http://my.oschina.net/huangyong/blog/215153 Shiro 是一个非常优秀的开源项目,源码非常值得学习与研究. 我想尝试做一次 不一样 的源码分析:源码分析不再 ...

  5. Ollivanders: Makers of Fine Wands since 382 BC.

    Ollivanders: Makers of Fine Wands since 382 BC.                                               Time L ...

  6. VersionCode和VersionName

    关于apk更新版本的问题   先上结论: Google为APK定义了两个关于版本属性:VersionCode和VersionName,他们有不同的用途. VersionCode:对消费者不可见,仅用于 ...

  7. PERCONA-TOOLKIT 工具的安装与使用2

    [root@server-mysql ~]# cd /usr/bin [root@server-mysql bin]# ls pt* pt-align pt-duplicate-key-checker ...

  8. RPM vs SRPM

    RPM 全名是『 RedHat Package Manager 』简称则为 RPM 啦!顾名思义,当初这个软件管理的机制是由 Red Hat 这家公司发展出来的. RPM 是以一种数据库记录的方式来将 ...

  9. 使用摘要流获取文件的MD5

    摘要流是过滤流的一种,使用它可以再读取和写入流时获取流的摘要信息(MD5/SHA). 使用摘要流包装流时,需要额外传递一个MessageDigest对象, MessageDigest md=Messa ...

  10. windows 下 node 多版本管理工具 - gnvm

    最近写了各个构建工具, 开发环境为mac,需要在windows下测试通过: 因为很久不用windows,windows下的node 版本还是 0.10.* 的,因此决定升级node mac 下我使用的 ...