Sto cercando di costruire qualcosa su JavaScript che posso avere un ingresso che può essere tutto come stringa, XML, JavaScript e (stringa non javascript senza virgolette) come segue :javascript - cattura SyntaxError ed eseguire funzione alternativa
//strings
eval("'hello I am a string'"); /* note the following proper quote marks */
//xml
eval(<p>Hello I am a XML doc</p>);
//javascript
eval("var hello = 2+2;");
Quindi preliminari 3 stanno lavorando bene in quanto sono semplici formati nativi JavaScript
ma quando provo utilizzare questo all'interno javascript
//plain-text without quotes
eval("hello I am a plain text without quotes");
//--SyntaxError: missing ; before statement:--//
Ovviamente javascript lo interpreta come errore di sintassi perché pensa che il suo javascript lancino un SyntaxError.
Quindi, cosa mi piacerebbe farlo per rilevare questo errore ed eseguire il metodo di regolazione se ciò si verifica.
Ho già provato con try catch ma non funziona poiché continua a restituire l'errore di sintassi non appena tenta di eseguire il codice.
Qualsiasi aiuto sarebbe molto apprezzato
Saluti :)
Informazioni aggiuntive: Immaginate un file esterno che javascript avrebbe letto, utilizzando SpiderMonkey, quindi è una roba non del browser (non posso usa HttpRequest, DOM, ecc ...). Non sono sicuro se questo è importante, ma è così. :)
ettari che è di destra (quello che una bestia :()! Thanks a Jesse molto, ho cercato prima di dichiararla direttamente senza l'eval, è per questo che ho ottenuto l'errore ... ma all'interno della eval esso ha funzionato molto bene! ciao :) – zanona
Sì, non vedo cosa c'è di sbagliato in questo modo di farlo. – Robusto
Ho anche provato a rilevare un errore di sintassi ma lo ha inviato alla console come "non catturato" comunque. L'errore di sintassi è stato causato da una richiesta abortita di ajax e non da una "valutazione" ma è lo stesso concetto, ho pensato che "try..catch'' avrebbe funzionato, ma non è così. –