js中 var、let 、const的区别

js中三中定义变量的方式var、let、const的区别

var

使用var可以定义全局变量,没有块级作用域的概念,比如:for循环中用var定义的变量,在for循环结束之后依然可以使用

for(var i=0;i<10;i++){}
console.log(i);//10

var 定义的变量存在变量提升,无论实际定义的位置,都会视为在全局作用域(或者函数顶部)

console.log(a);//undefined
var a = 1;

//实际相当于
var a;
console.log(a);
a = 1;

let

let 是块级作用域,不存在变量提升,如果在定义之前使用变量的话就会报错
在let 声明变量之前,该变量都是不可用的,在语法上,称为 暂时性死区

console.log(num);
let num = 10;

QQ截图20210305000536.png

let 在同一作用域内不能重复定义,重复定义会报变量已声明的错误

let num = 1;
let num = 2

QQ截图20210305000718.png

因为let 是块级作用域,所以在函数内部重新定义之后不会改变函数外部的值

let num = 1;

function test(){
   let num = 2;
}
test();
console.log(num);//1

const

const 也是块级作用域,在定义的时候必须赋值,而且定义之后不允许再修改

//如果定义的时候没有赋值,则会报错
const num;

QQ截图20210305001324.png

//块级作用域
const num = 1;

function test(){
   const num = 2;
}
test();
console.log(num);//1

关注前端e栈,分享更多前端技巧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值