你不知道的JS 中——yield
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
function *foo() {
var x = yield 2;
z++;
var y = yield (x * z);
console.log(x, y, z);
} var z = 1; var it1 = foo();
var it2 = foo(); var val1 = it1.next(555).value; // 2
var val2 = it2.next(5555).value; // 2 // 得 next(20),这个传入值将是 var x = yield 的值, yield 表达式为 20, 故 x = 20
// 而此时 val1 是 var y = yield (x * 2) 中的 yield 返回值。
// 也就是说,一个 yield 要调用两次 next() 才能得到这个表达式的值。
val1 = it1.next( val2 * 10 ).value;
val2 = it2.next(val1 * 5).value; it1.next(val2 / 2 );
</script>
</body>
</html>
你不知道的JS 中——yield的更多相关文章
- 读书笔记-你不知道的JS中-函数生成器
这个坑比较深 可能写完我也看不懂(逃 ES6提供了一个新的函数特性,名字叫Generator,一开始看到,第一反应是函数指针?然而并不是,只是一个新的语法. 入门 简单来说,用法如下: functio ...
- 读书笔记-你不知道的JS中-promise
之前的笔记没保存没掉了,好气,重新写! 填坑-- 现在与将来 在单个JS文件中,程序由许多块组成,这些块有的现在执行,有的将来执行,最常见的块单位是函数. 程序中'将来'执行的部分并不一定在'现在'运 ...
- 读书笔记-你不知道的JS中-promise(3)
坑坑坑 关于术语:决议.完成以及拒绝. 首先观察Promise(..)构造器: var p = new Promise(function(x, y) { //x() 用于完成 //y() 用于拒绝 } ...
- 读书笔记-你不知道的JS中-promise(2)
继续填坑 模式 考虑下面的代码: function fn(x) { //do something return new Promise(function(resolve, reject) { //调用 ...
- js中为什么你不敢用 “==”
文章引用:http://0313.name/archives/480 前言 类型转换在各个语言中都存在,而在 JavaScript 中由于缺乏对其的了解而不慎在使用中经常造成bug被人诟病.为了避免某 ...
- js 中的yield
yield是什么 yield是ES6的新关键字,使生成器函数执行暂停,yield关键字后面的表达式的值返回给生成器的调用者.它可以被认为是一个基于生成器的版本的return关键字. yield关键字实 ...
- 关于js中的this
关于js中的this this是javascript中一个很特别的关键字,也是一种很复杂的机制,学习this的第一步就是要明白this既不指向函数自身也不指向函数的词法作用域,this实际上是函数被调 ...
- js中RHS与LHS区别
为什么区分RHS与LHS是一件重要的事情? 因为在变量没有声明(在任何作用域都找不到该变量的情况下),这两种查询的行为是不一样的. function foo (a) { console.log(a + ...
- 翻译连载 | 第 9 章:递归(下)-《JavaScript轻量级函数式编程》 |《你不知道的JS》姊妹篇
原文地址:Functional-Light-JS 原文作者:Kyle Simpson-<You-Dont-Know-JS>作者 关于译者:这是一个流淌着沪江血液的纯粹工程:认真,是 HTM ...
随机推荐
- HTML 5中的本地存储概念?
很多时候,我们想在本地计算机存储有关用户的信息.例如,假设用户已经填满了一半的长表单,互联网却突然连接中断.此时,用户希望能在本地存储这些信息,然后当重新连接到互联网的时候,获取这些信息,并将其发送到 ...
- Atomic 的实现原理
1.直接操作内存,使用Unsafe 这个类 2.使用 getIntVolatile(var1, var2) 获取线程间共享的变量 3.采用CAS的尝试机制(核心所在),代码如下: public fin ...
- log4J——在Spring中的使用
log4J简介 1.通过 log4j 可以看到程序运行过程中更详细的信息 (1)经常使用 log4j 查看日志 2.使用 (1)导入 log4j 的jar包 (2)复制 log4j 的配置文件,复制到 ...
- 提高scrapy爬取效率配置
提高scrapy爬取效率配置 #增加并发: 默认scrapy开启的并发线程为32个,可以适当进行增加.在settings配置文件中修改CONCURRENT_REQUESTS = 100值为100,并发 ...
- ACM - 动态规划 - P1282 多米诺骨牌
多米诺骨牌由上下 \(2\) 个方块组成,每个方块中有 \(1 \sim 6\) 个点.现有排成行的上方块中点数之和记为 \(S_1\),下方块中点数之和记为 \(S_2\),它们的差为 \(\lef ...
- js技术之循环for
案例:把所有单词以空格为分割并将首字母转为大写 <!DOCTYPE html><html lang="en"><head> <meta c ...
- 2. 使用Github
2. 使用Github 2.1 目的 借助github托管项目代码 2.2 基本概念 仓库(Repository) 仓库用来存放项目代码,每个项目对应一个仓库,多个开源项目则有多个仓库 收藏(Star ...
- 以太网在汽车行业中的挑战——灵活的接口及软件使ECU开发不再复杂
以太网在汽车行业中的挑战--灵活的接口及软件使ECU开发不再复杂 以太网将会在一批新车型中作为一个车载系统网络使用.因此,下一步就是以太网和现有汽车网络技术的集成,包括:CAN.FlexRay.LIN ...
- 知网上的硕士和博士论文怎么下载pdf格式
文献管理使用的EndNote,阅读习惯使用Drawboard,在下载硕士和博士论文时在知网上只能下载caj格式,于是就想找一种能下载pdf的方式. 知乎中有篇文章介绍的如何下载pdf的方法,很管用也很 ...
- 如何保证同事的代码不会腐烂?一文带你了解 阿里巴巴 COLA 架构
一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第1天,点击查看活动详情. 本文开始前,问大家一个问题,你觉得一份业务代码,尤其是互联网业务代码,都有哪些特点? 我能想到的有这几点: ...