Javascript: var, let или ничего?
Часто спрашивают: почему в Javascript два оператора описания переменной?
Коротко говоря,
- переменная, описанная после
let
, видна в своём блоке и вложенных, это предпочтительный вариант описания переменных; - переменная, описанная после
var
, видна всюду внутри функции, при описании на глобальном уровне отличия от let нету; - переменная, вообще не описанная, а созданная непосредственно оператором присваивания "
=
", видна всюду в скрипте глобально - самый опасный вариант!
Вот этот код нормально напечатает в консоли браузера значение v1
, равное 10, хотя мы уже вышли из блока, где описана переменная,
строка с выводом 2 закомментирована, так как приведёт к ошибке "Uncaught ReferenceError",
строка с выводом величины v3
, определённой где-то в недрах функции, сработает как дань совместимости с устаревшими версиями, но делать так не надо.
<script> function f1 () { for (let i = 0; i < 10; i++) { var v1 = i + 1; //определение 1 } console.log (v1); //вывод 1 } function f2 () { for (let i = 0; i < 10; i++) { let v2 = i + 1; //определение 2 v3 = 3; //определение 3 } //console.log (v2); //вывод 2 } f1(); f2(); console.log (v3); //вывод 3 </script>
07.12.2020, 15:14 [709 просмотров]