废弃和过时的JavaScript特性

本附录列出了那些已经被废弃的(仍然可用,但未来会被删除)或者已经过时的(已经被删除,不能再用了)JavaScript特性.

废弃特性

这些废弃的特性仍然可以使用,但你要保持谨慎,因为它们很可能会在未来的某个时候被删除.

RegExp全局对象的属性

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

属性 描述
$1, ..., $9

上次任意正则表达式的匹配操作中对应捕获分组的匹配结果.

$_ input属性别名.
$* multiline属性别名.
$& lastMatch属性别名.
$+ lastParen属性别名.
$` leftContext属性别名.
$' rightContext属性别名.
input 上次任意正则表达式匹配的目标字符串.
lastMatch 上次任意正则表达式成功匹配的子字符串.
lastParen 上次任意正则表达式的匹配操作中最后一个捕获分组的匹配结果.
leftContext 上次任意正则表达式成功匹配的子字符串左边的字符串
rightContext
上次任意正则表达式成功匹配的子字符串右边的字符串

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

属性 描述
global 该正则是否开启了全局匹配模式.
ignoreCase 该正则是否开启了忽略大小写模式.
lastIndex 上次成功匹配后的索引位置,会成为下次匹配的开始索引位置,只在全局匹配或粘滞匹配模式下可用.
multiline 该正则是否开启了多行模式.
source 正则的源码

RegExp全局对象的方法

compile方法已经被废弃.

valueOf方法已经被废弃.使用Object.valueOf来替代.

函数对象的属性

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

Date方法

getYearsetYear方法因为会受千年虫问题的影响,所以已经被getFullYear和setFullYear方法替代.同时你还应该用toISOString方法来代替已经废弃的toGMTString方法.

转义序列

八进制转义序列(反斜杠\后跟一位,两位,或三位的八进制数字)出现在字符串字面量和正则字面量中的的用法已经废弃.

escape函数unescape函数已经废弃,请使用encodeURI,encodeURIComponent,decodeURI或者decodeURIComponent来进行给定字符串的编码和解码工作.

过时特性

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

对象

属性 描述
__count__ 返回用户自定义对象上的可枚举自身属性的个数.
__parent__ 指向一个对象的上下文.
方法 描述
eval 在指定对象的上下文上,将一个包含JavaScript代码的字符串求值.

函数

属性 描述
arity 形参的数量