Our volunteers haven't translated this article into ไทย yet. Join us and help get the job done!
This page lists features of JavaScript that are deprecated (that is, still available but planned for removal) and obsolete (that is, no longer usable).
Deprecated features
These deprecated features can still be used, but should be used with caution because they are expected to be removed entirely sometime in the future. You should work to remove their use from your code.
RegExp properties
The following properties are deprecated. This does not affect their use in replacement strings:
Property | Description |
---|---|
$1-$9 |
Parenthesized substring matches, if any. |
$_ |
See input . |
$* |
See multiline . |
$& |
See lastMatch . |
$+ |
See lastParen . |
$` |
See leftContext . |
$' |
See rightContext . |
input |
The string against which a regular expression is matched. |
lastMatch |
The last matched characters. |
lastParen |
The last parenthesized substring match, if any. |
leftContext |
The substring preceding the most recent match. |
rightContext |
The substring following the most recent match. |
The following are now properties of RegExp
instances, no longer of the RegExp
object:
Property | Description |
---|---|
global |
Whether or not to test the regular expression against all possible matches in a string, or only against the first. |
ignoreCase |
Whether or not to ignore case while attempting a match in a string. |
lastIndex |
The index at which to start the next match. |
multiline |
Whether or not to search in strings across multiple lines. |
source |
The text of the pattern. |
RegExp methods
- The
compile()
method is deprecated. - The
valueOf
method is no longer specialized forRegExp
. UseObject.valueOf()
.
Function properties
- The
caller
andarguments
properties are deprecated, because they leak the function caller. Instead of the arguments property, you should use thearguments
object inside function closures.
Legacy generator
Legacy generator function statement
andLegacy generator function expression
are deprecated. Usefunction* statement
andfunction* expression
instead.JS1.7/JS1.8 Array comprehension
andJS1.7/JS1.8 Generator comprehension
are deprecated.
Iterator
StopIteration
is deprecated.Iterator
is deprecated.
Object methods
watch
andunwatch
are deprecated. UseProxy
instead.__iterator__
is deprecated.__noSuchMethod__
is deprecated. UseProxy
instead.
Date methods
getYear
andsetYear
are affected by the Year-2000-Problem and have been subsumed bygetFullYear
andsetFullYear
.- You should use
toISOString
instead of the deprecatedtoGMTString
method in new code. toLocaleFormat
is deprecated.
Functions
- Expression closures are deprecated. Use regular
functions
or arrow functions instead.
Proxy
- Proxy.create and Proxy.createFunction are deprecated. Use
Proxy
instead. - The following traps are obsolete:
hasOwn
(bug 980565, Firefox 33).getEnumerablePropertyKeys
(bug 783829, Firefox 37)getOwnPropertyNames
(bug 1007334, Firefox 33)keys
(bug 1007334, Firefox 33)
Escape sequences
- Octal escape sequences (\ followed by one, two, or three octal digits) are deprecated in string and regular expression literals.
- The
escape
andunescape
functions are deprecated. UseencodeURI
,encodeURIComponent
,decodeURI
ordecodeURIComponent
to encode and decode escape sequences for special characters.
String methods
- HTML wrapper methods like
String.prototype.fontsize
andString.prototype.big
. String.prototype.quote
is removed from Firefox 37.- non standard
flags
parameter inString.prototype.search
,String.prototype.match
, andString.prototype.replace
are deprecated.
Obsolete features
These obsolete features have been entirely removed from JavaScript and can no longer be used as of the indicated version of JavaScript.
Object
Property | Description |
---|---|
__count__ |
Returns the number of enumerable properties directly on a user-defined object. |
__parent__ |
Points to an object's context. |
Object.prototype.eval() |
Evaluates a string of JavaScript code in the context of the specified object. |
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. |
Function
Property | Description |
---|---|
arity |
Number of formal arguments. |
Array
Property | Description |
Array.observe() |
Asynchronously observing changes to Arrays. |
Array.unobserve() |
Remove observers. |
Number
ParallelArray
Statements
for each...in
is deprecated. Usefor...of
instead.- Destructuring
for...in
is deprecated. Usefor...of
instead. - let blocks and let expressions are obsolete.
E4X
See E4X for more information.
Sharp variables
See Sharp variables in JavaScript for more information.