当前位置: 首页 > news >正文

var vs let 与 const

var 与 let (ES6新增) 都是用来声明变量。

变量提升

var 存在变量提升

console.log(a); // 输出undefined
var a = 2;

let 不存在变量提升

console.log(b); // Uncaught ReferenceError: Cannot access 'a' before initialization
let b = 2;

总结:let 先声明在使用,var不受限制

作用域

var 全局作用域

if(true){
  var a = 12
}
console.log(a); //12

let 块级作用域

即:声明所在的作用域

let b =12
if(true){
  console.log(b,"全局作用域"); //输出12
  let a = 123
  console.log(a,"if 块级作用域") //输出123
}
console.log(a,"作用域外访问if块级作用域") // Uncaught ReferenceError: a is not defined

这里有一个问题就是“暂时性死区”,简称“TDZ”

f (true) {
  a = 'abc'; // ReferenceError
  console.log(a); // ReferenceError

  let a; // TDZ结束
  console.log(a); // undefined

  a = 123;
  console.log(a); // 123
}

重复声明

var 可以重复声明

var a = 123
var a = 456
//输出456

let 同一作用域不可以重复声明

let b = 123
let b = 456
//输出Uncaught SyntaxError: Identifier 'b' has already been declared
//不同作用域可以重复声明
if(true){
  let a = 12
  console.log(a); //12
  if(true){
    let a = 123
    console.log(a); //13
  }
}

const 声明只读常量,值不能改变。

不存在变量提升

console.log(a,"a==="); //输出Uncaught ReferenceError: Cannot access 'a' before initialization
const a = 12;

块级作用域

const b = 12; //全局作用域
if(true){
  const a = 12; //if 块级作用域
  console.log("b",b);
}
console.log("a",a); //Uncaught ReferenceError: a is not defined

同一作用域不可以重复声明

const a = 12; 
const a = 123
console.log("a",a); //Uncaught SyntaxError: Identifier 'a' has already been declared

声明必须赋值

const a  //Uncaught SyntaxError: Missing initializer in const declaration

相关文章:

  • 求职面试常见问题:数组与链表
  • 2025DNS二级域名分发PHP网站源码
  • 阿里云操作系统控制台——ECS操作与性能优化
  • doris: PostgreSQL
  • c语言笔记 函数指针
  • K8S学习之基础九:k8s中pod的生命周期
  • Spark(5)host配置
  • 线上图片验证码性能优化base64编码
  • html播放本地音乐
  • 【HDLbits--FSM续(二)】
  • 游戏引擎学习第138天
  • R语言的基础命令及实例操作
  • sqlmap:从基础用法到漏洞利用实战
  • Zookeeper学习
  • 前端到AI,LangChain.Js(五)
  • DeepSeek V3 源码:从入门到放弃!
  • CInternetToolbar::_CommonHandleFileSysChange函数分析之CReBar::_IDToIndex函数的作用
  • Yocto Linux 量产 BSP 镜像定制
  • C++中避免重复虚函数的三大解决方案:以卡牌游戏开发为例
  • ArcGIS Pro:轻松制作地震动画,洞察灾害动态
  • 西安正规网站建设公司/企业营销策划及推广
  • 软件制作公司排名/邯郸seo排名
  • 长治做网站哪里不错/上海百度竞价点击软件
  • 网站建设工期/网页推广平台
  • 营销型企业网站群策略/上海网络营销seo
  • 四站合一网站建设价格/万网域名官网