废弃和过时的特性

翻译不完整。 请帮助我们翻译这篇文章!

本附录列出了那些已经废弃(仍然可用,但是已计划删除)或者过时(已被删除,无法使用)的 JavaScript 特性。

废弃特性

这些废弃的特性仍然可以使用,但是使用时一定要保持谨慎,因为它们很可能会在未来的某个时间点被移除。应当将其从需要使用的代码中移除。

RegExp 对象的属性

下面的这些属性已经被废弃。注意,这和替换字符串中使用的同名标记没有直接关系。

属性 描述
$1-$9

捕获分组的匹配结果。

$_ input 属性的别名。
$* multiline 属性的别名。
$& lastMatch 属性的别名。
$+ lastParen 属性的别名。
$` leftContext 属性的别名。
$' rightContext 属性的别名。
input 正则表达式的匹配结果。
lastMatch 上次匹配结果的最后一个字符串。
lastParen 上次匹配中,最后一个捕获分组的匹配结果。
leftContext 上次匹配结果左边的字符串。
rightContext 上次匹配结果右边的字符串。

应该使用下面这些 RegExp 实例上的同名属性来代替上面这些 RegExp 对象的属性:

属性 描述
global 该正则是否开启了全局匹配模式。
ignoreCase 该正则是否开启了忽略大小写模式。
lastIndex 上次成功匹配的索引位置。
multiline 该正则是否开启了多行模式。
source 正则的源文本。

RegExp 对象的方法

compile() 方法已被废弃。

valueOf 方法已被废弃。使用 Object.valueOf() 代替它。

Function 对象的属性

callerarguments 属性已经废弃,因为它们会泄漏调用函数的对象。应当在函数内部使用 arguments 对象来代替函数的 arguments 属性。

遗留的生成器

迭代器

Object 对象的方法

  • watch 方法和 unwatch 方法已被废弃。使用 Proxy 并编写相应的捕获器代替它们。
  • __iterator__ 方法已被废弃。
  • __noSuchMethod__ 方法已被废弃。使用 Proxy 并编写相应的捕获器作为代替。

Date 对象的方法

函数

Proxy

转义序列

字符串字面量(literal)和正则表达式字面量中的八进制转义序列(反斜杠 \ 后跟一到三位的八进制数字)已被废弃。

escape 函数和 unescape函数已被废弃。使用 encodeURIencodeURIComponentdecodeURIdecodeURIComponent 对特殊字符进行转义序列编码和解码。

String 对象的方法

过时特性

这些过时的特性已经完全被删除,不能在当前或者未来版本的 JavaScript 中使用了。

Object 对象

属性 描述
__count__ 返回用户自定义对象上的可枚举自身属性的个数。
__parent__ 指向一个对象的上下文。
Object.prototype.eval() 在指定对象的上下文上执行一个包含 JavaScript 代码的字符串。
Object.observe() Asynchronously observing the changes to an object.
Object.unobserve() Remove observers.
Object.getNotifier() Creates an object that allows to synthetically trigger a change.

函数

属性 描述
arity 形参的数量。

Array 对象

属性 描述
Array.observe() Asynchronously observing changes to Arrays.
Array.unobserve() Remove observers.

Number 对象

ParallelArray 对象

声明

E4X

详见 E4X

变量引用语法(Sharp variables)

详见 JavaScript 中的变量引用语法