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... Итак, все происходит так просто.