Pochodzę z tła innego niż javascript, staram się owijać głowę "niezdefiniowanym". napisałem funkcję „isUndefined” w następujący sposób:Zrozumienie funkcji i niezdefiniowana
function isUndefined(value) {
return (typeof value === 'undefined');
}
gdybym wpisać moje źródło to (gdzie zmienna „boo” nie istnieje), otrzymuję oczekiwanego rezultatu „Zmienna niezdefiniowana”.
if (typeof boo === 'undefined') {
console.log('undefined variable');
}
gdybym wpisać następujący: console.log (isUndefined(undefined));
uzyskać oczekiwany rezultat 'true'
Gdybym wpisać: console.log(isUndefined(boo));
uzyskać:
Reference Error: boo is not defined.
Spodziewałem się, że otrzymam "true" - więc mój Pytanie brzmi: dlaczego pierwsza "bezpośrednia" kontrola dla niezdefiniowanych zwraca oczekiwany wynik, ale test funkcji() na to nie działa?
Jesteś prawo być zaskoczony przez to. –
z jakiego tła pochodzisz? – galchen
http://javascriptweblog.wordpress.com/2010/08/16/understanding-undefined-and-preventing-referenceerrors/ – goat