ES6 var 与 let 区别简析

本文详细解析了ES6中var与let两种变量声明方式的区别,包括它们的作用范围、变量提升特性及重复声明规则。通过具体代码示例,帮助读者理解两者在不同场景下的行为差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

var 与 let

var 声明大家都很熟悉,是js中最常用的变量声明方式;而let是es6中加入的新的声明方式,接下来我会对二者的区别进行简要的分析,

作用范围

var的方式,是与函数作用于绑定的,var即在函数中存在(ES6之前js不区分代码块的),而let是仅存在与当前的块级作用域绑定,它不会在代码块之外存在,也不会在内的其他代码块存在,称之为暂时性死区;如下例子:

// var
var a= 'a';
var fun = function(){
    var b = 'b';
    console.log(a);
}
fun();	//输出a
console.log(b);	//错误

//let
let c = 'c';
{
    let c = 'd';
    console.log(c);		//输出'd'
}
console.log(c);		//输出'c'

变量提升

var是存在变量提升的,即声明提升到函数顶部,而let不会提升,所以在声明前使用会报错。

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

//var 等同于如下代码
var v;
console.log(v); // 输出undefined
v= 2;

// let
console.log(l); // 报错
let l= 2;

不允许重复声明

var的重复声明会进行覆盖,而let不允许重复声明。

//var var
function fun() {
  var a = 1;
  var a = 2;
  console.log(a);	//输出2
}
// var let ,报错
function fun() {
  var a = 1;	
  let a = 2;	//Uncaught SyntaxError: Identifier 'a' has already been declared
}
//let var ,报错
function fun() {
  let a = 1;
  var a = 2;
}
//let let ,报错
function fun() {
  let a = 1;
  leta = 2;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值