首页 > 其他 > 详细

let、const与var的区别

时间:2019-08-02 21:08:12      阅读:59      评论:0      收藏:0      [点我收藏+]

因为ES6之前是没有块级作用域的,只有全局作用域函数作用域,所以ES6新增了let和const两个关键字来实现块级作用域

(let、const)与var的区别

使用var声明变量的时候,大括号{}外面能访问到括号里面使用的var,因为此时内外都处在全局作用域中

但是使用let和const声明变量可以实现块级作用域,所以括号内外不再同一作用域中,因此括号外面不能访问里面

例1:
{   var x = 2; }
//此处可以访问到x
//但是如果使用let或const声明变量
{
let y = 1;
}
//此处不可以访问y
{
  const z = 1;
}
//此处不可以访问z
例2:
var x = 1; //x为1
{   let x = 2; //x为2 }
//x为1,块中声明的变量不会影响块外

在同一作用域中,var、let、const三者之间不能声明同一变量,

且let和const也不能重复声明相同变量

例3:
var x = 1;
let x = 2;  //不允许
const y = 3; //不允许
例4:
let x = 1; let x =2;  //不允许 const y = 1; const y = 2; //不允许

let与const的区别

let与const的区别在于const必须在声明时赋值,且之后不能改变

{
  let x = 1;
  x = 2;
  // x=2
}

{
  const y = 1;
  // y=1
}
{
  const y = 1;//此处必须初始化
  y = 2; //出错,不能更改
}

ps:通过var声明的变量会提升到顶端,let和const则不会

 

let、const与var的区别

原文:https://www.cnblogs.com/kusaki/p/11291167.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!