明天的明天 永远的永远 未知的一切 我与你一起承担 ??

是非成败转头空 青山依旧在 几度夕阳红 。。。
  博客园  :: 首页  :: 管理

let、const和var的区别(涉及块级作用域)

Posted on 2022-09-24 08:27  且行且思  阅读(65)  评论(0编辑  收藏  举报

let 、const和var的区别

let、const、var在js中都是用于声明变量的,在没有进行ES6的学习前,我基本只会使用到var关键字进行变量的声明,但在了解了ES6之后就涉及到了块级作用域以及let,const了。
let与const

    let是用于替代var来声明变量(var是ES6之前用来声明变量的关键词)
    const是用来声明常量的(var,let声明变量时,变量一旦初始化之后,还可以重新赋值,const声明常量,一旦初始化,就不能重新赋值了,否则会报错)

const详细介绍

使用const的原因:const 就是为了那些一旦初始化就不希望重新赋值的情况设计的

    注意事项:使用const声明常量,一旦声明,就必须立即初始化
    特殊说明:const声明常量,允许在不重新赋值的情况下修改它的值(基本数据类型不可,只有引用数据类型可以,引用类型引用的是地址不是值)

//基本数据类型赋值为常量之后是不可修改的
const name='zhangsan';
name='nn'; //x
//引用数据类型
const student={age:18};
//student={};
student.age=19; 

 

 

const的傻瓜使用指南
毕竟基础数据类型去修改const会报错,那其实可以都用const进行变量的声明,当变量后面发生变化时自然会报错(前提是你还记得住,还是不太推荐这个傻瓜指南的)。
块级作用域

咱就是说块级作用域简单说明一下,const和let的使用区别是会涉及到这个的
啥是作用域

常见的作用域主要分为几个类型:全局作用域、函数作用域、块状作用域、动态作用域。

 

const,var和let的区别

let、const、var的区别:①重复声明 ②变量提升 ③暂时性死区 ④块级作用域 ⑤window对象的属性和方法(全局作用域中)

1. 区别一:重复声明
  • var允许重复声明,let、const不允许
  • 2. 区别二:变量提升
    • var会提升变量的声明到作用域的顶部,但let和const不会(说白了就是let和const没有变量提升)
      • 3. 区别三:暂时性死区
        • 只要作用域内存在let、const,它们所声明的变量或常量就会自动“绑定”这个区域,不再受外部作用域的影响
        • 4. 区别四:window对象的属性和方法(全局作用域中)
          • 全局作用域中,var声明的变量,通过function声明的函数,会自动变为window对象的变量,属性或方法,但const和let不会
            • 5. 区别五:块级作用域
              • var没有块级作用域,let和const有块级作用域