javascript新特性let,function*,yield,promise

自从去了百度就好久没有更新博客了,看了以前写的东东,以前在小公司还是比较闲啊。讽刺的是这次又要换工作去小公司,才想起写篇博。。。

去了百度后先学了python,然后前面的GG走了,我也不想用python了,就全力转用nodejs了。

越来越喜欢上JS家族了,最近看了一下ECMA6的新特性,着实又增强了JS的生命力啊。看国外ASMJS大牛的视频说,JS的作者只用了10天就创造了这门语言。

所以希望ECMA能够继续进步。

废话多了些。下面干货来了。注意一下代码要用node --harmony执行,代码还要用strict模式运行。

let,其实就是块级作用域申明变量的var。之前JS的var关键字是非块级作用域的,而是函数级的。

例如arr=[0,1,2],我们经常写循环for(var i=0,len=arr.length; i < len; i++){},其实循环后这个i是还可以访问的2。这样就很容易污染环境变量。

如果用了let,for(let i=0,len=arr.length; i<len; i++){},这时循环后的i就是undefined的了。

function*,申明构造函数,返回{value:v,done:true_or_false}。构造函数可以调用next来获取下一个值,可以构造类似于随机数生成器。

yield和function*一起使用。在构造器函数中,yield可以暂停然后返回当前表达式的值。

例如function a(){yield 1;yield 2;}; var gen=a();console.log(gen.next());console.log(gen.next());console.log(gen.next());,结果是{value:1,done:false},{value:2,done:false},{value:undefined,done:true}.执行了构造a函数的第一行yield 1后,a函数退出并且保存上下文,当再次执行next时会恢复a函数上下文继续执行下一行b。

promise,这个非ECMA6特性,HTML5Rocks有篇文章写得挺好。主要是为了解决多层嵌套的问题。将嵌套回调转化成链式调用。

时间: 2024-10-12 03:23:16

javascript新特性let,function*,yield,promise的相关文章

ES6:JavaScript 新特性

5月14日,国务院发布了<国务院关于同意建立深化收入分配制度改革部际联席会议制度的批复>,同意建立由发改委牵头的深化收入分配制度改革部际联席会议制度.这是对政府一年多前首次发布的关于收入分配制度改革若干意见的落实,标志着中国收入分配改革迈出了实质性一步.根据批复,联席会议由国家发改委.财政部.人力资源和社会保障部等21个部门和单位组成.发改委主任徐绍史担任联席会议召集人,其他成员单位有关负责人为联席会议成员. 国务院下发的文件显示,部际联席会议制度的主要职责包括:在国务院领导下,统筹协调做好深

javascript新特性

让我们看看javascript中的一些新特性.本文将介绍它们的语法和相关链接,以帮助读者及时了解它们的进展.我们将通过编写一个小测试项目来演示如何快速使用这些新功能! 关于提案 提案分为五个阶段.有关详细信息,请参阅介绍文档https://tc39.github.io/process-document/.每项提案最初都以“斯特劳曼”或第0阶段休闲鹿提出,在这一阶段,它们要么没有提交给技术委员会,要么没有被否决,但尚未进入下一阶段. 作为个人建议,读者应避免在处于不稳定阶段的生产环境中使用阶段0建

ES6新特性:Function函数扩展, 扩展到看不懂

本文所有Demo的运行环境为nodeJS, 参考:让nodeJS支持ES6的词法----babel的安装和使用 : 函数的默认值: 如果有参数 ,那就用参数, 如果没有参数, 那就用默认的参数: ajax的请求经常要做这些判断, ES6规定了新的表达式, 让判断参数的逻辑更加简单: function fn(a = 1, b = 2, c = 3) { console.log(a,b,c); } fn(); //输出 1, 2, 3; fn(4,5,6); //输出 4, 5, 6 如果调用函数的

ES2019 中的 JavaScript 新特性

JavaScript 从成立之初就已经走了很长一段路,提供了许多新的功能,这些功能是专门设计来使该语言更加人性化和提升效率.以下是我最近发现的一些有趣的JavaScript 新增内容.其中一些功能已在 Node,Chrome,Firefox 和 Safari 中可用,而其他功能仍处于建议阶段. Optional chaining (可选链) Optional chaining 可选链使用 ?. 操作符来表示,Optional Chaining 使我们能检查一个对象上面是否存在某属性.其它一些语言

JS魔法堂:ES6新特性——GeneratorFunction介绍

一.前言       第一次看koajs的示例时,发现该语句 function *(next){...............} ,这是啥啊?于是搜索一下,原来这是就是ES6的新特性Generator Function(生成器函数). 那什么是生成器函数呢?其实就相当于C#2.0中通过yield关键字实现的迭代器生成器(细节有所不同),那么理解的关键就在yield关键字了.下面将尝试从表象出发,逐步对生成器函数及利用它进行异步编程进行浅层的分析理解. 二.语法及基本使用   示例: // 定义生

JavaScript学习--Item24 ES6新特性概览

ES6新特性概览 本文基于lukehoban/es6features ,同时参考了大量博客资料,具体见文末引用. ES6(ECMAScript 6)是即将到来的新版本JavaScript语言的标准,代号harmony(和谐之意,显然没有跟上我国的步伐,我们已经进入中国梦版本了).上一次标准的制订还是2009年出台的ES5.目前ES6的标准化工作正在进行中,预计会在14年12月份放出正式敲定的版本.但大部分标准已经就绪,且各浏览器对ES6的支持也正在实现中.要查看ES6的支持情况请点此. 目前想要

ArcGIS API for JavaScript 4.2学习笔记[0] AJS4.2概述、新特性、未来产品线计划与AJS笔记目录

放着好好的成熟的AJS 3.19不学,为什么要去碰乳臭未干的AJS 4.2? 诸君,我喜欢嫩的--呸呸呸 诸君,我喜欢3D咋了?新事物会替代旧事物不是~ ArcGIS API for JavaScript 4.2概述 AJS 4.2,即ArcGIS API for JavaScript 4.2,是美国ESRI公司针对WebGIS市场推出的.利用JavaScript和Dojo开发的一款产品,它在2016年12月发布.而AJS 4.0 beta则在一年前就发布了. 关于AJS3和AJS4选择的问题,

用ScriptEngine在java中和javascript交互的例子(JDK6新特性)

1. [代码][Java]代码     package demo7; import java.util.Arrays;import java.util.List; import javax.script.Invocable;import javax.script.ScriptEngine;import javax.script.ScriptEngineManager; public class ScriptEngineTest {     public static void main(Stri

ArcGIS API For Javascript新版本3.11中的新特性

ArcGIS API For Javascript新版本3.11中的新特性: 更简短的引用URL:如果你正在将用以前的版本的程序更新到新版本的话,这是很重要的. To update your code for version 3.11 references, replace the following URLs accordingly: /3.10/js/dojo/ should now read /3.11/ (note the dropped "/js/dojo") 将你的源码更新