对ES6的理解

ES6

ES6的了解
es6是一个新的标准,它包含了许多新的语言特性和库,是JS最实质性的一次升级。
比如’箭头函数’、’字符串模板’、’generators(生成器)’、’async/await’、’解构赋值’、’class’等等,还有就是引入module模块的概念。

箭头函数
可以让this指向固定化,这种特性很有利于封装回调函数
(1)函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。
(2)不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误。
(3)不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用Rest参数代替。
(4)不可以使用yield命令,因此箭头函数不能用作Generator函数。

async/await 是写异步代码的新方式,以前的方法有回调函数和Promise。
async/await是基于Promise实现的,它不能用于普通的回调函数。async/await与Promise一样,是非阻塞的。
async/await使得异步代码看起来像同步代码,这正是它的魔力所在。

说说你对Promise的理解

Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件监听——更合理和更强大。

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

Promise对象有以下两个特点:
1) 对象的状态不受外界影响,Promise对象代表一个异步操作,有三种状态:Pending(进行中)、Resolved(已完成,又称 Fulfilled)和Rejected(已失败)

2) 一旦状态改变,就不会再变,任何时候都可以得到这个结果。

时间: 2024-10-16 05:44:50

对ES6的理解的相关文章

Es6分享学习

对于es6本人说一下自己对于es6的理解以及用法.es6相对于es5来说,用起来更加的简洁,理解起来也比较容易.今天看了关于es6中一些自己任务比较常用的几点书写方法和他的代表含义. 1.函数参数的默认值  es6允许为函数的参数设置默认值(直接写在参数定义的后面)例如: function hello(x,y='world'){ console.log(x,y) } hello(1,2);//1,2 hello(1);//1,world 参数变量是默认声明的,所以不能用'let'或者'const

再唠叨JS模块化加载之CommonJS、AMD、CMD、ES6

Javascript模块化编程,已经成为一个迫切的需求.理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块. Javascript社区做了很多努力,在现有的运行环境中,实现"模块"的效果. CommonJS CommonJS定义的模块分为:  模块引用(require)    模块输出(exports)       模块标识(module) CommonJS Modules有1.0.1.1.1.1.1三个版本: Node.js.SproutCore实现了 Mo

ES6深入浅出-2 新版函数:4 迭代器与生成器-3.生成器 & for...of

迭代器平时用的很少.但是如果你是写框架的,你会经常用到迭代器. 生成器是专门用来做迭代器的东西 发布器是要产生一个叫做next的对象,如果你要产生这种对象.就可以使用ES6新出的语法. ES6的新语法 星号放在哪里都可以,甚至打空格可以了. 这样写也行 这样写也行 while(true)是一个死循环.这是一个ES6的语法糖 function*是什么 yield是什么鬼?ES6难理解,就是你永远用不到的东西,在这个基础之上又加了一个你永远用不到的东西. 可以移植运行a.next()理论上不会结束.

JavaScript - 收藏集 - 掘金

Angular 中的响应式编程 -- 浅淡 Rx 的流式思维 - 掘金第一节:初识Angular-CLI第二节:登录组件的构建第三节:建立一个待办事项应用第四节:进化!模块化你的应用第五节:多用户版本的待办事项应用第六节:使用第三方样式库及模块优化用第七节:给组件带来活力Rx--隐藏在 Angular 中的利剑Redux你的 A... Electron 深度实践总结 - 前端 - 掘金思维导图 前言: Electron 从最初发布到现在已经维护很长一段时间了,但是去年才开始慢慢升温.笔者个人恰好

html、css简述面试题

$HTML, HTTP,web综合问题 1.前端需要注意哪些SEO 2.<img>的title和alt有什么区别 3.HTTP的几种请求方法用途 4.从浏览器地址栏输入url到显示页面的步骤 5.如何进行网站性能优化 6.HTTP状态码及其含义 7.语义化的理解 8.介绍一下你对浏览器内核的理解 9.html5有哪些新特性.移除了那些元素? 10.HTML5的离线储存怎么使用,工作原理能不能解释一下? 11.浏览器是怎么对HTML5的离线储存资源进行管理和加载的呢 12.请描述一下 cooki

2018年前端面试总结

2018年前端面试总结 再有两个月,2018就快过完了,因而有必要在年末对2018年的前端学习做一个总结,本文主要从前端面试中的一些基础知识来对前端进行相关的总结.本文根据网络面试题进行总结. 基础知识 本部分主要从以下几个方面来回顾前端相关的基础知识: HTML相关 CSS相关 JAVASCRIPT相关 DOM相关 HTTP相关 webpack相关 Html html 根据内容的结构化(内容语义化),选择合适的标签(代码语义化)便于开发者阅读和写出更优雅的代码的同时让浏览器的爬虫和机器很好地解

JavaScript面试题总结系列(九)

9. JavaScript - ES6+介绍 一.var let const 区别: 使用 var 声明的变量,可以变量提升: 使用let. const声明的变量,没有变量提升: 二. 临时死区(Temporal Dead Zone) 与var不同,let和const声明的变量不会被提升到作用域顶部.因此,如果在声明之前访问这些变量,就会引发错误. 例如: if (condition) { console.log(typeof value); // 引用错误 let value = "blue&

《理解 ES6》阅读整理:函数(Functions)(五)Name Property

名字属性(The name Property) 在JavaScript中识别函数是有挑战性的,因为你可以使用各种方式来定义一个函数.匿名函数表达式的流行使用导致函数调试困难,在栈信息中难以找出函数名.因为这些原因,ES6为所有函数都增加了名字属性. 选择合适的名字(Choosing Appropriate Names) 在ES6中所有的函数都有一个合适的名字属性.来看下面的例子: function doSomething() { //... } var doAnotherThing = func

JavaScript es6 class类的理解。

在本篇文章我将会把我对JavaScript  es6新特性class类的理解.本着互联网的分享精神,我就将我自己的理解分享给大家. 使用es写一个类(构造函数) 在es5中大家一般都这么写一个类(构造函数) 另外需要注意,class类不会被提升. // 创建一个User构造函数 function User(name, age) { this.name = name; this.age = age; } // User构造函数的静态方法. User.getClassName = function