ES6

ES6 学习目录

1. let

    >1  定义变量的时候没有变量的预解释

    >2  不能重复定义变量

    > 3 虽然不进行预解释,但是代码执行前会先将定义的变量过滤一遍,一旦发现不合法的直接报错,代码也不执行了

2.const

    > 定义静态变量 不能修改值 必须要赋值

3. 数组赋值

4.对象赋值

解构赋值
对象数组嵌套 
默认值
其他
补充

ES6去重

1. new Set(arr) 去掉重复的项目,返回一个对象,包括NaN

    正常情况下,NaN === NaN 返回的是false,但是在set里,一样能够去重

console.log(new Set([1,2,3,3,4,5,5,6,null,undefined,undefined,NaN,NaN]));

2. Array.from   可以把类数组对象、可迭代对象转化为数组

    var newArr = Array.from(new Set([1,2,3,3,4,5,5,6,null,undefined,undefined,NaN,NaN]));

    console.log(newArr)

export,import ,export default 的区别

ES6模块主要有两个功能:export和import

export和import(一个导出一个导入)

export   用于对外输出本模块(一个文件可以理解为一个模块)变量的接口

import   用于在一个模块中加载另一个含有export接口的模块

变量操作 例如:

一个文件a.js     export var name="sukey";

另一个文件   


引入a.js文件   访问name变量


多个变量

如果是导出多个变量就应该按照下边的方法,用大括号包裹着需要导出的变量

var name1="李四";

var name2="张三";

export { name1 ,name2 }

对应的  import { name1 , name2 } from "/.a.js" 

函数

function add(x,y){

     alert(x*y)

}

export { add }

引用:

import { add } from "/.a.js"

export default{ 

     data () {return{ } }, 

     created:function(){ 

         add(4,6)

     }

}

export与export default的区别:

1、export与export default均可用于导出常量、函数、文件、模块等

2、你可以在其它文件或模块中通过import+(常量 | 函数 | 文件 | 模块)名的方式,将其导入,以便能够对其进行使用

3、在一个文件或模块中,export、import可以有多个,export default仅有一个

4、通过export方式导出,在导入时要加{ },export default则不需要

var name="李四";

export default name

注:

1. export default输出一个变量,不需要加{},那么import模块的时候也不需要大括号

2. 在一个文件或者模块中,export、import可以有多个,而export default仅有一个

3. 通过export方式导出,在导入时要加{ },exp    ort default则不需要

Promise的基本用法


promise实例

ECMAScript 和 JavaScript 的关系

1996 年 11 月,JavaScript 的创造者 Netscape 公司,决定将 JavaScript 提交给标准化组织 ECMA,希望这种语言能够成为国际标准。次年,ECMA 发布 262 号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为 ECMAScript,这个版本就是 1.0 版

该标准从一开始就是针对 JavaScript 语言制定的,但是之所以不叫 JavaScript,有两个原因。一是商标,Java 是 Sun 公司的商标,根据授权协议,只有 Netscape 公司可以合法地使用 JavaScript 这个名字,且 JavaScript 本身也已经被 Netscape 公司注册为商标。二是想体现这门语言的制定者是 ECMA,不是 Netscape,这样有利于保证这门语言的开放性和中立性。

因此,ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的一种实现(另外的 ECMAScript 方言还有 Jscript 和 ActionScript)。日常场合,这两个词是可以互换的

ES6与ECMAScript 2015的关系

ES6 的第一个版本,就这样在 2015 年 6 月发布了,正式名称就是《ECMAScript 2015 标准》(简称 ES2015)。

2016 年 6 月,小幅修订的《ECMAScript 2016 标准》(简称 ES2016)如期发布,这个版本可以看作是 ES6.1 版,因为两者的差异非常小(只新增了数组实例的includes方法和指数运算符),基本上是同一个标准。

根据计划,2017 年 6 月发布 ES2017 标准

所以 ES6 既是一个历史名词,也是一个泛指,含义是 5.1 版以后的 JavaScript 的下一代标准,涵盖了 ES2015、ES2016、ES2017 等等,而 ES2015 则是正式名称,特指该年发布的正式版本的语言标准。本书中提到 ES6 的地方,一般是指 ES2015 标准,但有时也是泛指“下一代 JavaScript 语言”

Babel 转码器

Babel 是一个广泛使用的 ES6 转码器,可以将 ES6 代码转为 ES5 代码,从而在现有环境执行。

这意味着,你可以用 ES6 的方式编写程序,又不用担心现有环境是否支持

let命令

1. let 用来声明变量 类似于var   没有 变量提前声明(预解释)

2.let声明的变量只在所在的代码块内有效(块级作用域)

3.let不允许在相同作用域内,重复声  明同一个变量

报错 ReferenceError: i is not defined 

ES6 明确规定,如果区块中存在let和const命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明之前就使用这些变量,就会报错

4.let实际上为 JavaScript 新增了块级作用域

 如果var定义 则输出10

    外层作用域无法读取内层作用域的变量

    内层作用域可以定义外层作用域的同名变量

4. 不存在变量提升

    console.log(b)  //ReferenceError b is not defined

    let b = 'a' 

typeof操作符返回一个字符串,表示未经计算的操作数的类型


返回数据类型

为什么需要块级作用域?

1. 内层变量可能会覆盖外层变量

2. 用来计数的循环变量泄露为全局变量

ES6 语法

1. 模板字符串

    将变量或者表达式 直接嵌入到字符串 使用反引号(``)拼接多行字符串

输出 json的年龄是20

2. 箭头函数

    1> 只含有1个表达式

    2> 含有多条语句

    3>this 的指向问题

输出20

3. set 函数

let set = new Set([1,2,3,4]) //构造函数 值不重复

[...set]  //... 扩展运算符 将类数组对象转换以逗号分隔的序列

for of  // 遍历

4. map 函数

5. generator 生成器函数

yield表示暂停
斐波拉契
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,558评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,002评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,024评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,144评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,255评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,295评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,068评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,478评论 1 305
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,789评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,965评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,649评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,267评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,982评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,800评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,847评论 2 351