2025年9月27日
变量作用域
JavaScript 与 Python 变量作用域的核心差异:
JavaScript 局部变量由声明方式和作用域规则隐式划分,全局变量存在隐式声明(严格模式禁止);
Python 局部变量默认隐式定义,但修改外部作用域变量需显式用 global/nonlocal 声明,避免歧义。
JavaScript
1. 局部变量
作用域规则:
var:函数作用域,声明在函数内任何位置(包括块中)都会提升到函数顶部。
javascript
function foo() {
console.log(x); // undefined(变量提升)
var x = 10;
}
let/const:块级作用域,仅在声明所在的代码块内有效。
javascript
if (true) {
let y = 20;
const z = 30;
}
console.log(y); // 报错:y is not defin…