为什么javascript函数不打印

时间:2014-04-20 06:12:10

标签: javascript

我遇到以下代码的问题:

<script type="text/javascript">
    function testGenerator() {
        yield "first";
        document.write("step1");
        yield "second";
        document.write("step2");
        yield "third";
        document.write("step3");
    }
    var g = testGenerator();
    document.write(g.next());
    document.write(g.next());
</script>

为什么函数什么都不打印?

1 个答案:

答案 0 :(得分:3)

首先,检查this chart以确保您使用的浏览器支持屈服。

然后,检查Mozilla's section on iterators,或者只阅读下面引用的要点:

  

为了使用JavaScript 1.7的一些新功能,您需要指定您希望使用JavaScript 1.7。在HTML或XUL代码中,使用:

<script type="application/javascript;version=1.7"></script>
  

使用JavaScript shell时,需要使用命令行上的-version 170开关或使用version()函数设置要使用的版本:

version(170);
  

需要使用新关键字“yield”和“let”的功能要求您指定版本1.7,因为现有代码可能会将这些关键字用作变量或函数名称。可以使用不引入新关键字(解构赋值和数组解析)的功能,而无需指定JavaScript版本。

TL; DR:yield关键字仅适用于包含在<script type="application/javascript;version=1.7">

中的HTML中的代码块