javascript如何定义变量_有哪些作用域规则

admin 百科 12
JavaScript变量声明推荐用const和let,避免var;const声明常量(引用不可变),let声明可变变量,均具块级作用域;var具函数作用域且存在变量提升,易引发问题。

javascript如何定义变量_有哪些作用域规则-第1张图片-佛山资讯网

JavaScript 定义变量主要用 letconst 和(不推荐的)var,作用域规则核心是:块级作用域(let/const)和函数作用域(var),全局作用域也存在但需谨慎使用。

三种声明方式的区别

let:块级作用域,可重新赋值,不能重复声明,不存在变量提升(暂时性死区)。

const:块级作用域,声明后必须初始化,不能重新赋值(注意:对象/数组内容仍可修改,只是引用不可变)。

var:函数作用域(或全局作用域),可重复声明,存在变量提升(声明被提升,赋值不提升),易引发意外行为,现代代码应避免使用。

立即学习“Java免费学习笔记(深入)”;

作用域层级与查找规则(词法作用域)

JavaScript 采用词法作用域,即作用域在代码编写时就确定,而非运行时。

  • 最内层作用域(如函数体、if 块、for 块)优先访问自身声明的变量
  • 找不到则向外层作用域逐级查找,直到全局作用域
  • 找不到且未声明就赋值(非严格模式)会自动挂到全局对象(如 window),严格模式下报错 ReferenceError

常见作用域场景示例

// 块级作用域(let/const 有效)

if (true) {

let x = 10;

const y = 20;

}

// console.log(x); // 报错:x is not defined

// console.log(y); // 报错:y is not defined

标签: javascript es6 java js 浏览器 win 区别 作用域

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~