下面介绍的是JavaScript从Netscape Navigator 4.0到4.5的更新日志。旧的Netscape文档可以在archive.org上面找到。Netscape Navigator 4.5是在1998年10月19日发布的。

JavaScript 1.3 最显著的变化是通过消除JavaScript1.2和1997年6月发布的新ECMA标准的不一致性来遵守ECMA-262和Unicode。JavaScript 1.2附加的特性，在ECMA-262的规定外还保留在JavaScript语言（见下面的列表中的差异）。

## JavaScript 版本

Netscape Navigator 4.06 到 4.5 将JavaScript语言的版本升到1.3。需要注意的是，Netscape Navigator 4.0 到 4.05以及更早的版本忽略了设置为"JavaScript 1.3"和更高的版本的脚本语言属性。

    <SCRIPT LANGUAGE="JavaScript1.2"> <!-- JavaScript for Navigator 4.0. -->
    <SCRIPT LANGUAGE="JavaScript1.3"> <!-- JavaScript for Navigator 4.5. -->

## JavaScript 1.3新特性

### 新增的全局变量

- `NaN`
- `Infinity`
- `undefined`

### 新增的方法

- `isFinite()`
- `Function.prototype.call()`
- `Function.prototype.apply()`
- `Date.UTC()`
- `Date.prototype.getFullYear()`
- `Date.prototype.setFullYear()`
- `Date.prototype.getMilliseconds()`
- `Date.prototype.setMilliseconds()`
- `Date.prototype.getUTCFullYear()`
- `Date.prototype.getUTCMonth()`
- `Date.prototype.getUTCDate()`
- `Date.prototype.getUTCHours()`
- `Date.prototype.getUTCMinutes()`
- `Date.prototype.getUTCSeconds()`
- `Date.prototype.getUTCMilliseconds()`
- `Date.prototype.toUTCString()`
- `Date.prototype.setUTCFullYear()`
- `Date.prototype.setUTCMonth()`
- `Date.prototype.setUTCDate()`
- `Date.prototype.setUTCHours()`
- `Date.prototype.setUTCMinutes()`
- `Date.prototype.setUTCSeconds()`
- `Date.prototype.setUTCMilliseconds()`

### 其他新特性

- 严格的相等运算符
- 支持Unicode
- 介绍了一种JavaScript的控制台

## JavaScript 1.3 修改的功能

- 修改 `Date` 使之符合 ECMA-262
  - 新的构造函数： `Date(year, month, day, [,hours [, minutes [, seconds [, milliseconds ]]]])`
  - 附加的方法参数
    - `setMonth(month[, date])`
    - `setHours(hours[, min[, sec[, ms]]])`
    - `setMinutes(min[, sec[, ms]])`
    - `setSeconds(sec[, ms])`
- 数组的长度（属性的长度）现在类型为32位 unsigned 整型。
- `Array.prototype.push()`: 在JavaScript 1.2中， `push` 方法返回最后一个被添加到数组的元素。在JavaScript 1.3下， `push` 返回数组新的长度。
- `Array.prototype.slice()`: 在JavaScript 1.2中， 如果只有一个元素被移除（`howMany 参数为1，splice方法返回被移除的元素。而在JavaScript 1.3，splice方法通常返回一个包含被删除的元素的数组。如果只有一个元素被移除，则返回一个只包含一个元素的数组。`
- `String.prototype.replace()`的变化。
- `Boolean` 对象的变化。
- `toString()的`变化。

## 非ECMA-262规范的JavaScript 1.3特性

下面是关于1998年6月的ECMA-262版本和JavaScript 1.3之间的比较。下面的特性不是当时的标准的一部分，但是在JavaScript 1.3里面实施了。

### 关键字和操作符

- 严格的相等运算符
- 垂直制表符(\ v或\ u000B)转义序列。

### 语句

- `label`
- `switch`
- `do...while`
- `export`
- `import`

### 内置对象

- `RegExp`

### 内置对象的方向

- `toSource()`
- `Object.prototype.watch()`
- `Object.prototype.unwatch()`
- `Function.arity`
- `Function.prototype.apply()`
- `Function.prototype.call()`
- `Array.prototype.concat()`
- `Array.prototype.pop()`
- `Array.prototype.push()`
- `Array.prototype.shift()`
- `Array.prototype.slice()`
- `Array.prototype.splice()`
- `String.prototype.concat()`
- `String.prototype.concat()`
- `String.prototype.match()`
- `String.prototype.search()`
- `String.prototype.slice()`
- `String.prototype.substr()`