Qual è la differnce traDifferenza TypeError e ReferenceError
TypeError: ... is undefined
e
ReferenceError: ... is not defined
?
Qual è la differnce traDifferenza TypeError e ReferenceError
TypeError: ... is undefined
e
ReferenceError: ... is not defined
?
A ReferenceError
si verifica quando si tenta di utilizzare una variabile che non esiste affatto.
A TypeError
si verifica quando la variabile esiste, ma l'operazione che si sta tentando di eseguire non è appropriata per il tipo di valore che contiene. Nel caso in cui il messaggio dettagliato indichi "non è definito", ciò può verificarsi se si dispone di una variabile il cui valore è il valore speciale undefined
e si tenta di accedere a una proprietà di esso.
Vedere http://javascriptweblog.wordpress.com/2010/08/16/understanding-undefined-and-preventing-referenceerrors/ per alcune discussioni relative a questo.
I sei tipi di JavaScript errore
La specifica JavaScript 1.5 definisce sei tipi di errore primario, come segue:
EvalError: sollevata quando le funzioni eval() viene utilizzato in modo non corretto.
RangeError: Sollevato quando una variabile numerica supera l'intervallo consentito.
Riferimento Errore: Sollevato quando viene utilizzato un riferimento non valido.
Sintassi Errore: Generato quando si verifica un errore di sintassi durante l'analisi del codice JavaScript.
TipoErrore: Generato quando il tipo di una variabile non è come previsto.
forte URIError testo: sollevata quando le encodeURI()
o decodeURI()
funzioni sono utilizzate in modo non corretto.
Si consideri il seguente codice:
function foo(){
var d=1234;
console.log(d.substring(1,2));
}
foo();
questo avrà seguente risultato:
Eccezione: TypeError: d.substring non è una funzione Questo perché abbiamo usato il tipo sbagliato (numero) per una determinata operazione (sottostringa che si aspetta una stringa). L'oggetto TypeError rappresenta un errore quando un valore non è del tipo previsto.
function foo(){
var d=1234;
console.log(c);
}
foo();
questo avrà seguente risultato:
eccezione: ReferenceError: c non è definito Questo perché il riferimento per la 'c' variabile non esiste in entrambi ambito locale o globale e siamo ancora cercando di usarlo. Un'eccezione ReferenceError viene generata quando si accede a una variabile inesistente.
Lo standard ECMAScript definisce in quali scenari si verifica ogni tipo di errore. [Vedi qui] (http://ecma-international.org/ecma-262/5.1/#sec-15.11.6.3) per un elenco completo di questi scenari. –
Potrebbe fornire esempi di codice che generano questi errori? –