2016-01-28 12 views
5
<script type="text/javascript"> 
    alert(a); 
</script> 

log della console mostra: "Uncaught ReferenceError: una non è definita";differenza tra "? Alert (a) '' e '' alert (a); var a = 1; '' in javascript

<script type="text/javascript"> 
    alert(a); 
    var a = 1; 
</script> 

al centro della rassegna, registro mostra: "indefinito"

Come funziona questo codice eseguito in js e che cosa provoca questa differenza

+7

[sollevamento variabile] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/var#var_hoisting) – Tushar

+0

nel secondo caso 'var a = 1;' se dichiarerai variabile dopo l'avviso errore 'indefinito' si verifica –

+0

c'è un errore di battitura dovrebbe essere avviso (a) non modificare (a) – brk

risposta

7

in questo codice

<script type="text/javascript"> 
    alert(a); 
    var a = 1; 
</script> 

var a ; viene issata all'inizio e diventa

<script type="text/javascript"> 
    var a; 
    alert(a); 
    a = 1; 
</script> 

così da tempo a stato avvisato, era undefined

In questo codice

<script type="text/javascript"> 
    alert(a); 
</script> 

un non è stato definito in tutto, quindi ha dato un errore "Uncaught ReferenceError: a is not defined"

Problemi correlati