Quais palavras-chave JavaScript (nomes de funções, variáveis etc.) estão reservadas?
javascript
reserved-words
titânico
fonte
fonte
Respostas:
Deveríamos estar vinculando às fontes de informação reais, e não apenas ao principal hit do Google.
http://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Reserved_Words
JScript 8.0: http://msdn.microsoft.com/en-us/library/ttyab5c8.aspx
fonte
Aqui está o meu poema, que inclui todas as palavras-chave reservadas em JavaScript, e é dedicado àqueles que permanecem honestos no momento, e não apenas tentam pontuar:
fonte
Para complementar a resposta de benc , consulte o Padrão ECMA-262 . Essas são as palavras reservadas oficiais, mas apenas um pedante ignora a implementação para respeitar o padrão. Para as palavras reservadas das implementações mais populares, que são firefox e internet explorer, consulte a resposta de benc.
As palavras reservadas no EMCAScript-262 são as Palavras - chave s, Palavras Reservadas Futuras , NullLiteral e BooleanLiteral s, onde as Palavras - chave são
as futuras palavras reservadas são
o NullLiteral é
e os BooleanLiteral s são
fonte
let
aqui, mas eu vejo isso no docu: ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdfEu estava lendo sobre isso em JavaScript e jQuery: The Missing Manual :
fonte
alert
já está inicializado, mas nada impede a sua reatribuiçãoalert = 5
. No entanto, você não pode definirwindow
para 5, mas pode usá-lo como uma variável local. Isso não é possível com palavras-chave reservadas, uso futuro,null
,false
,true
.yield
na minha verificação rápida e marcaram com +1. Eles podem ser ativados no ES5.1 pelo modo estrito:implements
interface
let
package
private
protected
public
static
yield
Aqui está uma maneira independente de versão de navegador e idioma para determinar se uma sequência específica é tratada como uma palavra-chave pelo mecanismo JavaScript. Créditos a esta resposta, que fornece o núcleo da solução.
fonte
eval
algo, provavelmente significa que está fazendo errado.Nenhuma das respostas atuais avisa que, independentemente do ES-Dialect, os navegadores tendem a ter suas próprias listas de palavras-chave reservadas, métodos etc., além do que o ES exige.
Por exemplo, IE9 proíbe o uso de nomes lógicos como:
addFilter
,removeFilter
(que, entre outros, são métodos reservados).Consulte http://www.jabcreations.com/blog/internet-explorer-9 para obter uma lista mais extensa 'atualmente conhecida' específica para o IE9. Eu ainda encontrei alguma referência oficial a eles no msdn (ou em outro lugar).
fonte
Aqui está uma lista do livro Eloquent JavaScript:
break
case
catch
class
const
continue
debugger
default
delete
do
else
enum
export
extend
false
finally
for
function
if
implements
import
in
instanceof
interface
let
new
null
package
private
protected
public
return
static
super
switch
this
throw
true
try
typeof
var
void
while
with
yield
fonte
A resposta de benc é excelente, mas para meus dois centavos, gosto da página da w3schools sobre isso:
http://www.w3schools.com/js/js_reserved.asp
Além de listar as palavras-chave reservadas pelo padrão, ele também possui uma longa lista de palavras-chave que você deve evitar em determinados contextos; por exemplo, não usar o nome
alert
ao escrever o código para ser executado em um navegador. Isso me ajudou a descobrir por que certas palavras estavam destacando como palavras-chave no meu editor, mesmo sabendo que não eram palavras-chave.fonte