首页 > 其他分享 >let、const和var的区别(涉及块级作用域)

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

时间:2022-09-24 08:44:36浏览次数:54  
标签:块级 const 变量 作用域 let var 声明

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有块级作用域

 

标签:块级,const,变量,作用域,let,var,声明
From: https://www.cnblogs.com/Fooo/p/16724891.html

相关文章

  • JS中的关键字,function和const,var,let有啥区别
    引言       在学习javascript的过程中,变量是无时无刻不在使用的。那么相对应的,变量声明方法也如是。变量是由自己决定,但变量声明方法是早已经定义好的。那么在使用......
  • 反射-Class对象功能-获取Constructor和获取Method
    反射-Class对象功能-获取ConstructorStudent类publicclassStudent{publicvoidsleep(){System.out.println("sleep...");}}配置文件#在src......
  • C++:储存持续性、作用域及链接性
      C++11的存储类别会影响信息在文件间的共享,一共有四种方案来保存数据,也就是变量的保存时间,而作用域决定变量的保存范围。持续时间自动存储连续性:函数内部定义中声明......
  • Constructor Method
           ......
  • leetcode 105. Construct Binary Tree from Preorder and Inorder Traversal 从前序与
    一、题目大意给定两个整数数组preorder和inorder,其中preorder是二叉树的先序遍历,inorder是同一棵树的中序遍历,请构造二叉树并返回其根节点。示例1:输入:pre......
  • 前端面试总结04-作用域与闭包
    作用域:全局作用域函数作用域块级作用域(es6新增)自由变量:1.一个变量在当前作用域没有定义,但被使用了2.向上级作用域,一层一层依次寻找,直到找到为止3.如果到全局作用域......
  • const修饰成员函数,常函数,常对象
    设计关键字:const、mutable常函数:-成员函数后面加const,就是常函数-常函数里面不能修改成员变量的值-成员变量加mutable修饰,在常函数中可以修改 常对象:-声明对象......
  • Deep Spatial Feature Reconstruction for Partial Person Re-identification: Alignm
    摘要本文介绍的是Partialpersonre-identification(基于部分身体的行人重检测)。这是一个很有挑战性的问题,因为只有完整行人的一部分可以获得用来进行匹配。但是它具有很高......
  • 执行上下文/作用域/闭包
    首先执行上下文的概念,执行上下文是评估和执行Js代码运行环境的抽象概念,任何Js代码在执行时,都是在对应的上下文中执行。执行上下文有三种类型,全局上下文,函数上下文以及Eval......
  • Java基础06 变量、常量、作用域
    变量变量是什么:就是可以变化的量!◆Java是-种强类型语言,每个变量都必须声明其类型。◆Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。typeva......