JavaScript参考手册
Operators
function*
function*
关键字可以在表达式内部定义一个生成器函数。
语法
function* [name]([param1[, param2[, ..., paramN]]]) {
statements
}
参数
name
函数名。在声明匿名函数时可以省略。函数名称只是函数体中的一个本地变量。
paramN
传入函数的一个参数名。一个函数最多有 255 个参数。
statements
函数体。
描述
function*
表达式和function* 声明
比较相似,并具有几乎相同的语法。function*表
达式和function*
声明之间主要区别就是函数名,即在创建匿名函数时,function*
表达式可以省略函数名。阅读函数
章节了解更多信息。
示例
下面的示例定义了一个未命名的生成器函数并把它赋值给x。函数产出它的传入参数的平方:
var x = function*(y) {
yield y * y;
};
规范
Specification |
Status |
Comment |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262)The definition of 'function*' in that specification. |
Standard |
Initial definition. |
ECMAScript Latest Draft (ECMA-262)The definition of 'function*' in that specification. |
Living Standard |
|
浏览器兼容性
Feature |
Chrome |
Edge |
Firefox (Gecko) |
Internet Explorer |
Opera |
Safari |
---|---|---|---|---|---|---|
Basic support |
(Yes) |
(Yes) |
26.0 (26.0) |
? |
? |
10 |
yield* |
(Yes) |
? |
27.0 (27.0) |
? |
? |
10 |
Trailing comma in parameters |
? |
? |
52.0 (52.0) |
? |
? |
? |
Feature |
Android |
Chrome for Android |
Edge |
Firefox Mobile (Gecko) |
IE Mobile |
Opera Mobile |
Safari Mobile |
|
---|---|---|---|---|---|---|---|---|
Basic support |
? |
(Yes) |
(Yes) |
26.0 (26.0) |
? |
? |
10 |
|
yield* |
? |
(Yes) |
? |
27.0 (27.0) |
? |
? |
10 |
|
Trailing comma in parameters |
? |
? |
? |
52.0 (52.0) |
? |
? |
? |
? |
Operators相关
JavaScript 是一种高级编程语言,通过解释执行,是一门动态类型,面向对象(基于原型)的解释型语言。它已经由ECMA(欧洲电脑制造商协会)通过 ECMAScript 实现语言的标准化。它被世界上的绝大多数网站所使用,也被世界主流浏览器( Chrome、IE、FireFox、Safari、Opera )支持。JavaScript 是一门基于原型、函数先行的语言,是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程。它提供语法来操控文本、数组、日期以及正则表达式等,不支持 I/O,比如网络