1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
|
---
title: Deprecated and obsolete features
slug: Web/JavaScript/Reference/Deprecated_and_obsolete_features
tags:
- Depreciado
- Obsoleto
translation_of: Web/JavaScript/Reference/Deprecated_and_obsolete_features
---
<div>{{JsSidebar("More")}}</div>
<p>Esta página lista funcionalidades do JavaScript que foram descontinuadas (ou seja, continuam disponíveis mas têm remoção planejada) e obsoletas (ou seja, não estão mais disponíveis).</p>
<h2 id="Funcionalidades_descontinuadas"><em>Funcionalidades </em>descontinuadas</h2>
<p>Estas <em>features</em> descontinuadas ainda podem ser usadas, mas com cautela, porque espera-se que sejam removidas por completo no futuro. Aconselha-se que remova-as do seu código.</p>
<h3 id="Propriedades_RegExp">Propriedades RegExp</h3>
<p>As propriedades a seguir foram descontinuadas. Isto não afeta o uso delas em {{jsxref("String.replace", "replacement strings", "", 1)}}:</p>
<table class="standard-table">
<tbody>
<tr>
<th>Propriedade</th>
<th>Descrição</th>
</tr>
<tr>
<td>{{jsxref("RegExp.n", "$1-$9")}}</td>
<td>
<p>Encontra <em>substrings </em>dentro de parênteses.<br>
<strong>Atenção: </strong> Usar estas propriedades pode resultar em problemas, porque extensões do navegador podem modifica-las. Evite-as!</p>
</td>
</tr>
<tr>
<td>{{jsxref("RegExp.input", "$_")}}</td>
<td>Ver <code>input</code>.</td>
</tr>
<tr>
<td>{{jsxref("RegExp.multiline", "$*")}}</td>
<td>Ver <code>multiline</code>.</td>
</tr>
<tr>
<td>{{jsxref("RegExp.lastMatch", "$&")}}</td>
<td>Ver <code>lastMatch</code>.</td>
</tr>
<tr>
<td>{{jsxref("RegExp.lastParen", "$+")}}</td>
<td>Ver <code>lastParen</code>.</td>
</tr>
<tr>
<td>{{jsxref("RegExp.leftContext", "$`")}}</td>
<td>Ver <code>leftContext</code>.</td>
</tr>
<tr>
<td>{{jsxref("RegExp.rightContext", "$'")}}</td>
<td>Ver <code>rightContext</code>.</td>
</tr>
<tr>
<td>{{jsxref("RegExp.input", "input")}}</td>
<td>A string encontrada por uma expressão regular.</td>
</tr>
<tr>
<td>{{jsxref("RegExp.lastMatch", "lastMatch")}}</td>
<td>Os últimos caracteres encontrados.</td>
</tr>
<tr>
<td>{{jsxref("RegExp.lastParen", "lastParen")}}</td>
<td>A última <em>substring</em> entre parênteses que foi encontrada.</td>
</tr>
<tr>
<td>{{jsxref("RegExp.leftContext", "leftContext")}}</td>
<td>A penúltima <em>substring</em> encontrada.</td>
</tr>
<tr>
<td>{{jsxref("RegExp.rightContext", "rightContext")}}</td>
<td>A <em>substring</em> que segue a que foi encontrada por último.</td>
</tr>
</tbody>
</table>
<p>As propriedades a seguir pertencem a instâncias de um <code>RegExp</code>, não mais ao objeto <code>RegExp</code>:</p>
<table class="standard-table">
<tbody>
<tr>
<th>Propriedades</th>
<th>Descrição</th>
</tr>
<tr>
<td>{{jsxref("RegExp.global", "global")}}</td>
<td>Determina se deve ou não testar a expressão regular com todas as combinações possíveis em uma <em>string</em> ou só com a primeira.</td>
</tr>
<tr>
<td>{{jsxref("RegExp.ignoreCase", "ignoreCase")}}</td>
<td>Determina se deve ou não ignorar a capitalização ao tentar encontrar uma combinação em uma <em>string</em>.</td>
</tr>
<tr>
<td>{{jsxref("RegExp.lastIndex", "lastIndex")}}</td>
<td>O índince que aponta o começo da próxima combinação.</td>
</tr>
<tr>
<td>{{jsxref("RegExp.multiline", "multiline")}}</td>
<td>Determina se deve ou não procurar por <em>strings</em> em várias linhas diferentes.</td>
</tr>
<tr>
<td>{{jsxref("RegExp.source", "source")}}</td>
<td>O texto do padrão.</td>
</tr>
</tbody>
</table>
<h3 id="Métodos_RegExp">Métodos RegExp</h3>
<ul>
<li>O método {{jsxref("RegExp.compile", "compile()")}} foi descontinuado.</li>
<li>O método <code>valueOf</code> não é mais especializado para <code>RegExp</code>. Use {{jsxref("Object.valueOf()")}}.</li>
</ul>
<h3 id="Propriedades_de_Função">Propriedades de Função</h3>
<ul>
<li>As propriedades {{jsxref("Global_Objects/Function/caller", "caller")}} e {{jsxref("Global_Objects/Function/arguments", "arguments")}} foram descontinuadas, porque elas estouram o chamador de funções. Ao invés da propriedade <em>arguments</em>, deve-se usar o objeto {{jsxref("Functions/arguments", "arguments")}} dentro dos fechamentos da função.</li>
</ul>
<h3 id="Legacy_generator">Legacy generator</h3>
<ul>
<li>{{jsxref("Statements/Legacy_generator_function", "Legacy generator function statement")}} e {{jsxref("Operators/Legacy_generator_function", "Legacy generator function expression")}} foram descontinuados. No lugar deles, use {{jsxref("Statements/function*", "function* statement")}} e {{jsxref("Operators/function*", "function* expression")}}.</li>
<li>O {{jsxref("Operators/Array_comprehensions", "JS1.7/JS1.8 Array comprehension", "#Differences_to_the_older_JS1.7.2FJS1.8_comprehensions")}} e o {{jsxref("Operators/Generator_comprehensions", "JS1.7/JS1.8 Generator comprehension", "#Differences_to_the_older_JS1.7.2FJS1.8_comprehensions")}} foram descontinuados.</li>
</ul>
<h3 id="Iterador">Iterador</h3>
<ul>
<li>{{jsxref("Global_Objects/StopIteration", "StopIteration")}} foi descontinuado.</li>
<li>{{jsxref("Global_Objects/Iterator", "Iterator")}} foi descontinuado.</li>
</ul>
<h3 id="Métodos_de_objeto">Métodos de objeto</h3>
<ul>
<li>{{jsxref("Object.watch", "watch")}} e {{jsxref("Object.unwatch", "unwatch")}} foram descontinuados. No lugar deles, use {{jsxref("Proxy")}} .</li>
<li><code>__iterator__</code> foi descontinuado.</li>
<li>{{jsxref("Object.noSuchMethod", "__noSuchMethod__")}} foi descontinuado. Use {{jsxref("Proxy")}} em seu lugar.</li>
</ul>
<h3 id="Métodos_de_data">Métodos de data</h3>
<ul>
<li>{{jsxref("Global_Objects/Date/getYear", "getYear")}} e {{jsxref("Global_Objects/Date/setYear", "setYear")}} foram afetados pelo Bug do Milênio e foram reagrupados em {{jsxref("Global_Objects/Date/getFullYear", "getFullYear")}} e {{jsxref("Global_Objects/Date/setFullYear", "setFullYear")}}.</li>
<li>Deve-se usar {{jsxref("Global_Objects/Date/toISOString", "toISOString")}} ao invés do método descontinuado {{jsxref("Global_Objects/Date/toGMTString", "toGMTString")}} em códigos novos.</li>
<li>{{jsxref("Global_Objects/Date/toLocaleFormat", "toLocaleFormat")}} foi descontinuado.</li>
</ul>
<h3 id="Funções">Funções</h3>
<ul>
<li>{{jsxref("Operators/Expression_closures", "Expression closures", "", 1)}} foram descontinuadas. Use {{jsxref("Operators/function", "functions")}} normais ou {{jsxref("Functions/Arrow_functions", "arrow functions", "", 1)}} no lugar delas.</li>
</ul>
<h3 id="Proxy">Proxy</h3>
<ul>
<li><a href="/en-US/docs/Archive/Web/Old_Proxy_API">Proxy.create</a> e <a href="/en-US/docs/Archive/Web/Old_Proxy_API">Proxy.createFunction</a> foram descontinuadas. Use {{jsxref("Proxy")}} no lugar delas.</li>
<li>As armadilhas a seguir ficaram obsoletas:
<ul>
<li><code>hasOwn</code> ({{bug(980565)}}, Firefox 33).</li>
<li><code>getEnumerablePropertyKeys</code> ({{bug(783829)}}, Firefox 37)</li>
<li><code>getOwnPropertyNames</code> ({{bug(1007334)}}, Firefox 33)</li>
<li><code>keys</code> ({{bug(1007334)}}, Firefox 33)</li>
</ul>
</li>
</ul>
<h3 id="let">let</h3>
<ul>
<li>{{jsxref("Statements/let", "let blocks", "#let_block")}} e {{jsxref("Statements/let", "let expressions", "#let_expressions")}} foram descontinuados.</li>
</ul>
<h3 id="Sequências_de_escape">Sequências de escape</h3>
<ul>
<li>Sequências de escape octais (\ seguido por um, dois ou três dígitos octais) foram descontinuadas em literais <em>string</em> e expressões regulares.</li>
<li>As funções {{jsxref("Global_Objects/escape", "escape")}} e {{jsxref("Global_Objects/unescape", "unescape")}} foram descontinuadas. Use {{jsxref("Global_Objects/encodeURI", "encodeURI")}}, {{jsxref("Global_Objects/encodeURIComponent", "encodeURIComponent")}}, {{jsxref("Global_Objects/decodeURI", "decodeURI")}} ou {{jsxref("Global_Objects/decodeURIComponent", "decodeURIComponent")}} para codificar e decodificar sequências de escape para caracteres especiais.</li>
</ul>
<h3 id="Métodos_de_string">Métodos de <em>string</em></h3>
<ul>
<li><a href="https://developer.mozilla.org/en-US/docs/tag/HTML%20wrapper%20methods">HTML wrapper methods</a> como {{jsxref("String.prototype.fontsize")}} e {{jsxref("String.prototype.big")}}.</li>
<li>{{jsxref("String.prototype.quote")}} foi removido do Firefox 37.</li>
<li>parâmetros flag não padrões em {{jsxref("String.prototype.search")}}, {{jsxref("String.prototype.match")}}, e {{jsxref("String.prototype.replace")}} foram depreciados.</li>
</ul>
<h2 id="Features_obsoletas"><em>Features</em> obsoletas</h2>
<p>Estas <em>features</em> obsoletas foram totamente removidas do JavaScript e não podem ser usadas a partir da versão indicada do JavaScript.</p>
<h3 id="Object">Object</h3>
<table class="standard-table">
<tbody>
<tr>
<th>Property</th>
<th>Description</th>
</tr>
<tr>
<td>{{jsxref("Global_Objects/Object/count", "__count__")}}</td>
<td>Returns the number of enumerable properties directly on a user-defined object.</td>
</tr>
<tr>
<td>{{jsxref("Global_Objects/Object/Parent", "__parent__")}}</td>
<td>Points to an object's context.</td>
</tr>
<tr>
<td>{{jsxref("Global_Objects/Object/eval", "Object.prototype.eval()")}}</td>
<td>Evaluates a string of JavaScript code in the context of the specified object.</td>
</tr>
<tr>
<td>{{jsxref("Object.observe()")}}</td>
<td>Asynchronously observing the changes to an object.</td>
</tr>
<tr>
<td>{{jsxref("Object.unobserve()")}}</td>
<td>Remove observers.</td>
</tr>
<tr>
<td>{{jsxref("Object.getNotifier()")}}</td>
<td>Creates an object that allows to synthetically trigger a change.</td>
</tr>
</tbody>
</table>
<h3 id="Function">Function</h3>
<table class="standard-table">
<tbody>
<tr>
<th>Property</th>
<th>Description</th>
</tr>
<tr>
<td>{{jsxref("Global_Objects/Function/arity", "arity")}}</td>
<td>Number of formal arguments.</td>
</tr>
</tbody>
</table>
<h3 id="Array">Array</h3>
<table class="standard-table">
<tbody>
<tr>
<td>Property</td>
<td>Description</td>
</tr>
<tr>
<td>{{jsxref("Array.observe()")}}</td>
<td>Asynchronously observing changes to Arrays.</td>
</tr>
<tr>
<td>{{jsxref("Array.unobserve()")}}</td>
<td>Remove observers.</td>
</tr>
</tbody>
</table>
<h3 id="Number">Number</h3>
<ul>
<li>{{jsxref("Number.toInteger()")}}</li>
</ul>
<h3 id="ParallelArray">ParallelArray</h3>
<ul>
<li>{{jsxref("ParallelArray")}}</li>
</ul>
<h3 id="Statements">Statements</h3>
<ul>
<li>{{jsxref("Statements/for_each...in", "for each...in")}} is deprecated. Use {{jsxref("Statements/for...of", "for...of")}} instead.</li>
<li>Destructuring {{jsxref("Statements/for...in", "for...in")}} is deprecated. Use {{jsxref("Statements/for...of", "for...of")}} instead.</li>
</ul>
<h3 id="E4X">E4X</h3>
<p>See <a href="/en-US/docs/Archive/Web/E4X">E4X</a> for more information.</p>
<h3 id="Sharp_variables">Sharp variables</h3>
<p>See <a href="/en-US/docs/Archive/Web/Sharp_variables_in_JavaScript">Sharp variables in JavaScript</a> for more information.</p>
|