Если вы попытаетесь использовать переменную, которая не существует и не была объявлена, javascript выдает ошибку. var name is not defined, а script остановится тогда и там.
Но если вы проверите его с помощью typeof noname, он вернет "undefined". Я всегда думал, что вам нужно объявить var, чтобы он имел тип. Либо используя: var a; поэтому он имеет тип undefined или задает значение типа: var b =5;, поэтому он имеет тип своего значения.
В чем же разница между var a; и var b = undefined;?