浅析javaScript中var与let的区别

前言:在使用javaScript语言写一些算法语言时,老是存在一些闭包,变量声明提前这些问题,导致各种各样奇葩的问题,在这里就做一些let与var分享…

  1. 首先在javaScript中是不存在let 变量声明的,这是ES6声明提出的。。
  2. 其次letvar的区别很大的一点在于let是不存在变量声明提前。
console.log(a);
let a=1;//这个语句是会报错的,因为不存在变量声明提前。。。

console.log(b);
var b=2;//控制台会输出undefined
  1. letvar还有很大的区别在于,let 声明的变量作用于块级,而var却可以作用于整个函数。。。
if (true) {
    var i = 1;
}
console.log(i); // 1

if (true) {
    let j = 1;
}
console.log(j); // Uncaught ReferenceError: j is not defined
  1. 还有一点值得注意的是,let是无法声明全局变量的。。。
var x = 'global';
let y = 'global';
console.log(this.x); // "global"
console.log(this.y); // undefined

本篇博客参考了,思否假分子,和MDN

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值