¿Es posible obtener una lista de palabras reservadas (variables, funciones, nombres de objetos) en JS?

hay mucha informacion excelente en este hilo SO

Puedo obtener las palabras clave de los sitios web proporcionados allí, PERO Estoy preguntando si es posible obtener palabras clave reservadas en tiempo real. ¿Quizás hay alguna estructura donde se almacenan?

Para objetos globales en la ventana, puedo agarrarlos con esto:

for(var i in window) doSomethingWith(i)

Pero también necesito todas las palabras clave específicas del idioma como: si, caso, interruptor, etc.

DISCULPE No quería escribir "entonces". estaba codificando Pascal en la última hora (recordando viejos tiempos) y ¡maldita sea, se me quedó grabado en la cabeza!

Lo que quiero hacer: Puede sonar extraño, sin embargo, estoy creando una aplicación donde puedes crear elementos, tienen nombres, valores, fórmulas y las fórmulas son fórmulas JS puras, excepto que ejecuto una expresión regular para modificar un poco las variables y quiero dejar la sintaxis de javascript.

Por ejemplo, si la fórmula es: if (a < b) { c = d; } En este caso me gustaría modificar sólo a, b, c y d.

Si la fórmula fuera algo como: switch(a) { case 0: a=b; break; case 1: b=c; ... } En este caso me gustaría filtrar "cambiar, romper, caso".

Bueno, tal vez debería eliminar esta pregunta.

preguntado el 22 de mayo de 12 a las 21:05

¿Por qué los necesitaría en tiempo real? No es como si cambiaran tan a menudo. simplemente sáquelos de un sitio web y colóquelos en una matriz constante en su código si necesita "Tiempo real" -

@Limey, solo pregunto si hay una solución en lugar de agarrar :) -

¿A qué te refieres con "agarrar"? -

Consulte la especificación: es5.github.com/#x7.6.1.1 -

@lukas.pukenis: gracias por aclarar eso al ofrecer otro término genérico e indefinido. ¡Ser específico es una excelente manera de facilitar que las personas te ayuden! -

2 Respuestas

Bueno, si buscas en Google "palabras reservadas de JavaScript" obtienes esto:

abstract (*)
as (2)
boolean
break
byte
case
catch
char
class (2)
continue
const (2)
debugger (*)
default
delete
do
double
else
enum (*)
export (2)
extends (2)
false
final
finally
float
for
function
goto (*)
if
implements (*)
import (2)
in
instanceof
int
interface (2)
is (2)
long
namespace (2)
native (*)
new
null
package (2)
private (2)
protected (*)
public (2)
return
short
static (2)
super (2)
switch
synchronized (*)
this
throw
throws (*)
transient (*)
true
try
typeof
use (2)
var
void
volatile (*)
while
with

Fuente: http://javascript.about.com/library/blreserved.htm

No estoy seguro de lo que quiere decir con "agarrarlos", pero podría poner todas esas palabras en una matriz y buscar cada elemento de la matriz en un bloque de texto...

contestado el 22 de mayo de 12 a las 21:05

Eso es perfecto, sin embargo, no hay ninguna palabra clave como "entonces" aquí. Me gustaría tenerlos todos - lukas.pukenis

@lukas.pukenis: no sabía que "entonces" era una palabra clave. De acuerdo con esa referencia (que se supone que incluye palabras clave que aún no se han implementado), no es una palabra clave. - jahroy

bueno, sí, no es una palabra clave, sino una palabra reservada - lukas.pukenis

@ lukas.pukenis: no estoy seguro de por qué está "reservado" en su opinión. Si tiene algunas palabras que desea reservar por sus propios motivos, puede agregarlas a la matriz. Aquí hay una referencia aún mejor con más palabras "especiales". NO incluye "entonces" tampoco. - jahroy

Una búsqueda rápida en los tubos (siempre debe buscar en Google primero) arrojó este fragmento de código que nunca esperaría ver, un verificador de palabras reservado. Ni siquiera intenté jugar con él, así que no sé si es correcto o no.

https://github.com/revolution42/Javascript-Reserved-Word-Checker/blob/master/checker.js

contestado el 22 de mayo de 12 a las 21:05

+1 Siempre busco en Google primero, simplemente no podía pensar en una solución simple. Gracias por un gran enlace - lukas.pukenis

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.