三分钟了解var const let 区别

目录

相同点

一 三者不同点 

1.声明提升

2.变量覆盖

3.没有块级作用域(重要)

二 const 与let 的区别

1.const 声明之后必须赋值 否则就会报错

2.定义的值不能去修改,引用数据类型可以修改否则会报错


相同点

都是定义变量,但是在es6中不在使用var

一 三者不同点 

1.声明提升

先声明

在es6中let 跟const 都是先声明在使用的

var中 它的顺序没有要求

 console.log(num)  //undefined

    var num = 123    

 在 let/const

 console.log(num)  //undefined

    let num = 123     报错

2.变量覆盖

在var中 可以定义相同的变量名

var num1 = 12

var num1 = 34

console.log(num1)  // 34

 eg:在外面定义obj里面有大量数据  var obj = {}   

在次声明obj为字符串 obj = ' '  它会把之前对象里面的数据全部覆盖,会出现一些不可预知的错误

 在 let/const 中 

定义相同的名字时,编译器就会自动报红

已经定义了不能在重复定义

3.没有块级作用域(重要)

 function fn2() {

      for(var i = 0; i <3; i++){

        console.log(i)  // 0 1 2

      }

    }

    fn2()

 如果在for循坏外打印i

 function fn2() {

      for(var i = 0; i <3; i++){

        console.log(i)  // 0 1 2

      }

      console.log(i) // 3  

    }

    fn2()

依然会打印出3,说明var没有块级作用域

var定义的i本来是在for循坏里使用的,但它却也可以在for循环外打印 换成let 跟const 会报错

二 const 与let 的区别

const定义的叫做常量 一般常量名要大写,用于全局的

let定义的叫做变量

1.const 声明之后必须赋值 否则就会报错

const demo 报错 

2.定义的值不能去修改,引用数据类型可以修改否则会报错

const demo = 123

        demo = 456

    console.log(demo)  报错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值