Function Scope vs Block Scope?

Начал учить JS после Java,
Не очень понимаю разницу между двумя Scope, например,
Function Scoped превращается в Block Scope для функций при использовании stict mode, какая разница на практике?
Я читал статьи и не мог понять, что для меня как для разработчика от этого меняется?

Block Scope для лупов, ифов, Function scope для функций ( до ES6 ), по факту разницы не понял.

Был бы очень благодарен за ответ!
  • Вопрос задан
  • 386 просмотров
Решения вопроса 1
@alekcena
Нелинейный наставник
Эта штука работает вместе с старым объявлением переменной.
function test(){
// Работаем в области функции нет разницы
var a = 10; // console.log(a)  - 10
let b = 10; // console.log(b)  - 10
// var в блоке можно получить из вне.
for(var c = 0;c < 2; c++){}
console.log(c) // console.log(c) - 2
for(let d = 0;d<1;d++){}
console.log(d) // console.log(d) - ошибка нет такой переменной
}

use strict - директива включающая новые правила для написания правильного кода. Чтобы человек меньше себе стрелял в ногу тем что переменная из цикла могла существовать на глобальном уровне.
Там если ошибка то сразу по ручкам.
Пример:

//Обычный js:
function test(){
magic = 10;}
test();
console.log(magic) // 10
//С use strict:
function test(){
magic = 10;}
test();
console.log(magic) // magic is not defined


P.S:
Если можете то просто посмотрите как писать с use strict ) И не вспоминайте как можно работать без него
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
SummerWeb Ярославль
от 120 000 до 180 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
Brightdata Тель-Авив
от 5 500 до 6 500 $
13 июн. 2024, в 13:25
10000 руб./за проект
13 июн. 2024, в 13:15
5000 руб./за проект
13 июн. 2024, в 13:03
15000 руб./за проект