以下为JavaScript 1.8的更新日志。JavaScript 1.8 是 Gecko 1.9（已合并在 Firefox 3 中）的一部分。参见 bug 380236 以跟踪 JavaScript 1.8。

### 使用 JavaScript 1.8

为了可以在 HTML 中使用 JavaScript 1.8 的新特性，需要这样写：

     <script type="application/javascript;version=1.8"> ... 你的代码 ... </script>

另一种方法（不推荐）是使用旧式的 <script> 属性 language，把它定义为 "JavaScript1.8"。

在使用 JavaScript shell 、JavaScript XPCOM 组件，或者 XUL `<script>` 元素的时候，将自动启用最新的JS版本（Mozilla 1.9中的 JS1.8）(bug 381031, bug 385159)。

如果需要使用新的关键字 "yield" 和 "let"，你需要指定是1.7版本或者更高的版本，因为现有的代码可能会把这两个关键字用作变量名或者函数名。如果要使用的新特性没有引入任何新的关键字（例如生成器表达式），就可以不指定 JavaScript 的版本。

## JavaScript 1.8新特性

- Expression Closures.
- 生成器表达式。生成器表达式可以让你方便地创建生成器（在JavaScript1.7中引入）。通常你需要创建一个内含yield的自定义函数来得到一个生成器，而生成器表达式可以让你使用类似数组的语法来达到同样的目的。
- `Array.prototype.reduce()`
- `Array.prototype.reduceRight()`

## JavaScript 1.8功能更新

### `对for..in解构的修改`

JavaScript1.8中的一个修改是对JavaScript1.7中引入的数组键值结构相关的bug修复。之前可以用`for ( var [key, value] in array )的方式来结构一个数组的键值。但是，这也让对数组的数组的键值结构变得不可能（比如一个迭代器返回一个当前键值对的数组）。现在这个问题可以用for ( var [key, value] in Iterator(array))来解决`(bug 366941)。