var、let、const 的区别

var

什么是var,它是js的一个关键字,它是用来声明一个变量,并可选地将其初始化为一个值。变量的初始化值可以是任何合法的表达式,默认值为 undefined。var如果在方法中声明,则为局部变量;如果在全局中声明,则为全局变量。
var变量声明总是在任意代码执行之前处理的,所以在代码中的任意位置声明变量总是等效于在代码开头声明。

	    console.log(a); //undefined
        var a = 1;
        console.log(a); // 1
        // 可以隐式地将以上代码理解为:
        var a
        console.log(a); //因为声明了但没赋值所以是undefined
        a = 1;
        console.log(a);// 这里赋值然后输出的就是1
        // var 是可以重命名赋值的 后面的会覆盖前面的
        var a = 10
       	console.log(a);// 输出10

let

let是ES6新增的声明变量的关键字,跟var区别:
1.let声明的变量不会挂在window中,不会造成全局变量的污染
2.新增了一个块级作用域{},以前只有函数作用域,全局作用域
3.let是不允许重复声明
4.let不会有声明提前(只是人为看到的效果,实际上是有声明提前,提前到临时性的死区中)
就例如:

		for (var i = 0; i < 10; i++) {
            setTimeout(function() {
                console.log(i); // 这里会输出10 个10
            }, 0)
        }
        for (let i = 0; i < 10; i++) {
            setTimeout(function() {
                console.log(i); //这里依次输出0到9 
            }, 0)
        }

const

const也是ES6新增的,是声明常量的,非常类似用 let 语句定义的变量。但常量的值是无法(通过重新赋值)改变的,也不能被重新声明。
1.不能重复声明,没有声明提前;
2.不允许被修改,不允许改变内存空间的地址
3.const声明和赋值必须一次性完成,并且后期不允许改变存储空间的地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值