CMAScript 6 简介:

CMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。

刚开始使用 vue 或者 react,很多时候我们都会把 ES6 这个大兄弟加入我们的技术栈中。以下是我们在日常开发中比较常用的特性。

1.变量声明 const 和 let

我们都是知道在 ES6 以前,var 关键字声明变量。无论声明在何处,都会被视为声明在函数的最顶部(不在函数内即在全局作用域的最顶部)。这就是变量提升例如:

以上的代码实际上是:

所以无论如何 test 都会被创建声明

但是在 ES6 中新增了 let 和 const 命令。let 表示变量、const 表示常量。let 和 const 都是在它们所在的块级作用域中有效。看以下代码:

const 声明的常量不能被修改

let 的作用域是在它所在当前代码块,不会存在变量提升。for 循环的计数器,就很合适使用 let 命令。列入以下代码

2.函数

函数默认参数

在 ES5 我们给函数定义参数默认值:

但当 num 传入为0的时候就是 false,此时 num = 200 与我们的实际要的效果明显不一样。

ES6 为参数提供了默认值。在定义函数时便初始化了这个参数,以便在参数没有被传递进去时使用。

箭头函数

ES6 很有意思的一部分就是函数的快捷写法。也就是箭头函数。

箭头函数最直观的三个特点:

·        不需要 function 关键字来创建函数

·        省略 return 关键字

·        继承当前上下文的 this 关键字

3.更方便的数据访问--解构

数组和对象是 JS 中最常用也是最重要表示形式。为了简化提取信息,ES6 新增了解构,这是将一个数据结构分解为更小的部分的过程。

ES5 中我们提取对象中的信息形式如下:

ES6 中我们从对象或者数组里取出数据存为变量,例如

4.Spread Operator 展开运算符

ES6 中的另外一个特性就是 Spread Operator 三个点儿...

组装对象或者数组

想获取数组或者对象除了前几项或者除了某几项的其他项

对于 Object 而言,还可以用于组合成新的 Object。(ES2017 stage-2 proposal) 当然如果有重复的属性名,右边覆盖左边

5.import 和 export

import 导入模块、export 导出模块

导入与导出的一些细节:

1.当用 export defaultpeople 导出时,就用 import people 导入(不带大括号)

2.一个文件里,有且只能有一个 exportdefault。但可以有多个 export。

3.当用 export name 时,就用 import { name } 导入(记得带上大括号)

4.当一个文件里,既有一个 exportdefault people, 又有多个 export name 或者 export age 时,导入就用 import people, { name, age}

5.当一个文件里出现 n 多个 export 导出很多模块,导入时除了一个一个导入,也可以用 import * asexample

6.Promise

Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了 Promise 对象。

所谓 Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。Promise 提供统一的 API,各种异步操作都可以用同样的方法进行处理。

基本用法:

Promise 构造函数接受一个函数作为参数,该函数的两个参数分别是 resolve 和 reject。它们是两个函数,由 JavaScript 引擎提供,不用自己部署。

resolve 函数的作用是,将 Promise 对象的状态从“未完成”变为“成功”(即从 pending 变为 resolved),在异步操作成功时调用,并将异步操作的结果,作为参数传递出去;reject 函数的作用是,将 Promise 对象的状态从“未完成”变为“失败”(即从 pending 变为 rejected),在异步操作失败时调用,并将异步操作报出的错误,作为参数传递出去。

以上整理的是比较常见的 es6 特性,更多 es6 的内容大家可以进入到官方文档中学习。

【海说软件接受各种技术咨询及开发业务】

-END-

转载于:https://blog.51cto.com/13476205/2064908

前端知识 | 简析ES6相关推荐

  1. 计算机硬件组成理论性知识,简析计算机硬件知识体系的结构框架.doc

    简析计算机硬件知识体系的结构框架 简析计算机硬件知识体系的结构框架 1 计算机硬件知识体系特点 1 .1 复杂系统的整体性.层次性和动态性复杂系统的整体性强调其组成因素之间相互作用.相互影响紧密关系. ...

  2. 怎样才能掌握好计算机知识,简析怎样才能上好计算机课

    计算机是现代社会的重要工具, 它不单单应用于科学.军事.医疗并与人们的日常生活越来越贴近,各种计算机相关新技术逐一亮相,使人们清醒的看到掌握不好计算机基本技能,将难以在现代信息社会中有效地工作和生活, ...

  3. linux下的IO重定向与管道相关的知识简析

    一.bash重定向部分简单翻译 1.1.bash手册关于重定向短短的注解(因为过于经典,所以摘录出来) 我的翻译要开始毁经典啦... 参考: https://blog.csdn.net/spch200 ...

  4. Java中高级核心知识全面解析——Redis(集群【概述{主从复制、哨兵、集群化}、数据分区方案、节点通信机制、数据结构简析】)5

    目录 一.[集群]入门实践教程 1.Redis 集群概述 1)Redis 主从复制 2)Redis 哨兵 3)Redis 集群化 2.主从复制 1)主从复制主要的作用 2)快速体验 ①.第一步:本地启 ...

  5. 微前端调研及简析SPA实现原理

    最近对微前端讨论很多,梳理下自己对微前端的理解以及业内的一些微前端尝试反馈. 第零部分:自己对微前端理解 第一部分:基于Single-SPA微前端的一些demo 第二部分:Single-SPA微前端实 ...

  6. layui 如何动态加载局部页面_从输入URL到页面加载的过程?如何由一道题完善自己的前端知识体系!

    前言 见解有限,如有描述不当之处,请帮忙指出,如有错误,会及时修正. 为什么要梳理这篇文章? 最近恰好被问到这方面的问题,尝试整理后发现,这道题的覆盖面可以非常广,很适合作为一道承载知识体系的题目. ...

  7. 2022集创赛安谋科技杯简析公开课文字版(建议结合视频一起看)

    下面是2022年集创赛安谋科技杯简析公开课文字版,建议结合PPT和视频一起学习.文字整理来自2022年集创赛安谋科技杯杯赛助理甘云汉. 大家好,我是第五届集创赛Arm杯企业奖一等奖得主,很荣幸能收到技 ...

  8. layui 如何动态加载局部页面_从输入URL到页面加载的过程?如何由一道题完善自己的前端知识体系!...

    作者:撒网要见鱼 原文链接:http://www.dailichun.com/2018/03/12/whenyouenteraurl.html 「----超长文预警,需要花费大量时间.----」 本文 ...

  9. 从输入URL到页面加载的过程?如何由一道题完善自己的前端知识体系!

    前言 见解有限,如有描述不当之处,请帮忙指出,如有错误,会及时修正. 为什么要梳理这篇文章? 最近恰好被问到这方面的问题,尝试整理后发现,这道题的覆盖面可以非常广,很适合作为一道承载知识体系的题目. ...

最新文章

  1. iOS中几种定时器 - 控制了时间,就控制了一切
  2. Angular的constructor和ngOnInit里写代码有什么区别?
  3. OpenCV-Python入门教程7-PyQt编写GUI界面
  4. 伦敦帝国学院提出局部特征提取新模式D2D:先描述后检测
  5. matlab求smith标准型
  6. Shell 脚本 ssh免密码 登录 远程服务器 sshpass用法示例
  7. dtw算法 c语言实现,dtw算法 - WELEN
  8. matlab矩阵除法——记忆技巧
  9. 测试工具|(本来不想分享的)安卓系统Ping IP工具
  10. 小学数学思维导图集合 小学数学思维导图怎么画
  11. RFID射频识别系统简述
  12. 学习《华为基本法》(11):项目管理与审计制度
  13. STM32F103 SDID模块SDHC卡读写
  14. Mac系统如何制作Mac U盘启动盘(更新至mac 12.6)
  15. EBS 个性化:个性化简介
  16. 网络准入系统usersafe守护企业内网安全
  17. Ubuntu 16.04 查看软件包的命令技巧
  18. Access to XMLHttpRequest at ‘http127.0.0.18000server‘ from origin ‘http127.0.0.15500‘ has
  19. 读javascript高级程序设计02-变量作用域
  20. mysql数据库总是自动关闭_急求关于mysql数据库自动停止的问题

热门文章

  1. 用RtlAdjustPrivilege来调整进程权限(VB6.0代码)
  2. Linux截图工具import使用说明
  3. 经典浪漫的爱情英语妙语
  4. 深度学习资源一网打尽!论文、数据集、框架、课程、图书等应有尽有
  5. 英伟达发布迁移学习工具包,现在可以申请早期试用
  6. 谷歌CEO皮猜:我们想服务中国用户,但是没想好提供何种服务
  7. 我一个理科生造的AI,怎么就去做历史高考题了呢?
  8. 43岁的微软大重组:肢解Windows,拥抱AI,20年功臣离职
  9. 被逮到一个初始状态考虑不周的Bug
  10. JS---Math.Random()*10--[0,10)随机变颜色