6/35 день изучения JavaScript.....
Сегодня я узнал о блоке, его области действия и многом другом....
Что такое блок в Js. Блок — это просто эти скобки { }
Зачем нам этот блок, представьте, что если утверждение Элдриджа
if(true){ var c=36; console.log(c+10); }
В приведенном выше коде, если условие истинно, необходимо выполнить две строки кода. Используя блок, мы можем объединить их, и теперь javascript примет это как одну строку кода и выполнит ее.
Область блока, когда переменная, созданная в блоке, имеет область действия только внутри него, поэтому она знает область действия блока.
В Js let и const имеют область действия блока, но поскольку Var привязан к глобальному объекту, он имеет глобальную область действия. Рассмотрим приведенный ниже фрагмент кода.
( let a=60; var b=50; const c=60; )
Когда вы когда-либо будете отлаживать это, вы узнаете, что let и const выделяют память в отдельном блоке, тогда как b находится в глобальной области видимости.
(let a=10; const b=20; var c = 60; console.log(a); console.log(b); console.log(c); ) console.log(a); console.log(b); console.log(c);
Когда мы запускаем этот код, чтобы понять область видимости блока, мы можем получить доступ к Var в любом месте кода. Но a и b считаются недоступными, после окончания блока вы получите ссылку на ошибку.
Теперь давайте узнаем о затенении
Var a =10; ( Var a=20; let b=20; const c=30; console.log(a); ) console.log(a); 10 10
Это известно как слежка. Где a=20 затеняет и изменяет значение a. Здесь мы ясно видим, что внутри блока console регистрируется значение a 10;
Вне блока логируется тоже 10. Но это не в случае let и const.
let b=10; ( Var a=20; let b=20; const c=30; console.log(a); ) console.log(a); 20 10
В случае let и const. Поскольку эти 2 имеют область действия блока. Мы получаем результат, как показано. После завершения этого блока эти две переменные в блоке удаляются.
Теперь давайте узнаем о незаконной слежке.
var a =10; ( let a=20; let b=20; const c=30; console.log(a); ) console.log(a);
Мы не можем этого сделать, это незаконная слежка. поскольку у нас есть глобальная область видимости вне блока, мы не можем назначить его снова с помощью let, который более ограничен, чем Var, мы не можем этого сделать.
let a =10; ( Var a=20; let b=20; const c=30; console.log(a); ) console.log(a);
Но мы можем сделать это, поскольку Var не более ограничен, чем let.
let a =10; ( Var a=20; let b=20; const c=30; console.log(a); ) console.log(a);
Но мы можем это сделать... Это разрешено.,
лексическая область видимости следует за областью блока.
Для приведенного ниже кода
var a =20; { var a=30; { var a=45; console.log(a); } }
J считают, что это ближайшая ценность. В этом случае а=45;
Для кода ниже
var a =20; { var a=30; console.log(a); { var a=45; } }
Здесь результат равен 30... Итак, все происходит так просто.