Ответ
В JavaScript переменные имеют function scope (var) или block scope (let/const). В Python scope определяется только уровнями вложенности (функции, классы, модули).
Пример в JavaScript:
if (true) {
let blockScoped = "visible only here";
var functionScoped = "visible in whole function";
}
console.log(functionScoped); // работает
console.log(blockScoped); // ReferenceError
Пример в Python:
if True:
local_var = "visible outside if"
print(local_var) # работает - нет блочной области видимости
def func():
function_var = "only inside function"
print(function_var) # NameError
Ключевые отличия:
- В Python нет hoisting (поднятия переменных)
- В Python переменные в блоках (if/for) видны снаружи
- В JavaScript var "всплывает", let/const ограничены блоком