• let、const和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有块级作用域
  • 相关阅读:
    bash 中有效建立锁
    go 语言 Makefile 指定依赖包位置
    在 mysql 中对特定的库禁用 DDL 语句
    go 语言并发机制 goroutine 初探
    Google和facebook如何应用R进行数据挖掘
    数据应用催生商业模式
    4款语音播报来电短信应用[Android]
    让 php 用 nginx 打包 zip
    10个关于 Dropbox 的另类功用(知乎问答精编)[还是转来了]
    分析以数据挖掘技术预测用户流失情况的方法
  • 原文地址:https://www.cnblogs.com/Fooo/p/16724891.html
Copyright © 2020-2023  润新知