function x() {}
è hoisted dell'inizio portata fn
s', e questo rende efficace x
una variabile locale prima viene valutata.
La funzione è non impostata su 10
.
Aggiornamento: La frase sopra è errata. x
è impostato su 10
. var
non è abituato a dichiararlo, ma anche se fosse, l'ultima frase nella citazione che segue si riferisce solo al dichiarazione parte del nome x
, non la sua assegnazione-10
.
Da MDN (sottolineatura mia):
funzione
Tre moduli con diverso comportamento portata:
- dichiarato: come una dichiarazione in cima funzione di genitore -level
- si comporta come una var vincolante che viene inizializzato a quella funzione
- inizializzazione "paranchi" alla cima della funzione genitore, sopra vars
var
- funzione-ambito
- paranco per la parte superiore della sua funzione
- redeclarations lo stesso nome nello stesso ambito sono gabbie
fonte
2012-09-07 19:56:53
Bizarre ... Se commentate la riga 'function x() ...', avvisa '10'. – Shmiddty