Это первый из 100 дней моего изучения javascript, и сегодня я узнал о ключевом слове javascript var.
var в основном объявляет переменную, которая может быть ограничена функцией или глобально.
var a = 100; console.log(a); //100 function print() { var b =200; console.log(b); //200 } var a=100; console.log(a); //100 if(true) { var b= 200; console.log(b); //200 } console.log(a); //100 console.log(b); //200 (acessible as javascript doesnot have block scope) function print() { var c = 300; console.log(a); //100 console.log(b); //200 console.log(c); //300 } print(); console.log(a); //100 console.log(b); //200 console.log(c); //error:(Uncaught ReferenceError: c is not defined) // c is in function scope pf function print
Повторное объявление переменной с использованием var не вызовет ошибки даже в строгом режиме, и переменная не потеряет значение, пока не будет выполнено другое присвоение.
var a=100; console.log(a); //100 var a; // no error even with duplicate declaration console.log(a); //100 var a=90; // no error even with duplicate declaration console.log(a) //90
объявления var, где бы они ни встречались, обрабатываются до выполнения любого кода.
a=100; var a; console.log(a); //100 implicitly understood as var a; a=100; console.log(a) hence no issue even if variable is used before declarion
переменная, объявленная с помощью var, имеет начальное значение undefined.
var a; console.log(a); //undefined
вар подъемный
Поскольку объявления var
обрабатываются до выполнения любого кода, объявление переменной в любом месте кода эквивалентно объявлению ее в начале. Это также означает, что переменная может казаться используемой до того, как она будет объявлена. Такое поведение называется поднятие, так как кажется, что объявление переменной перемещается в начало функции или глобального кода. Вот почему рекомендуется всегда объявлять переменные в верхней части их области действия.
поднимается только объявление переменной, а не ее инициализация. Инициализация происходит только при достижении оператора присваивания. До тех пор переменная остается undefined
(но объявленной):
function print() { console.log(b); // undefined var bar = 1; console.log(b); // 1 } function print() { var b; console.log(b); // undefined bar = 1; console.log(b); // 1 }
Это все на сегодня. Догонят завтра.
Спасибо за прочтение. Пожалуйста, хлопайте, если вам понравилась статья.
Продолжай учиться!
#100daysofjavascript