• ES6学习笔记


    1、let声明变量只在块级作用域内有效

    let在循环内使用时,只在当前轮循环有效,所以每一次都是一个新变量,循环出去后循环内的i会显示为未定义,所以会打印6


    用var定义只会打印一次abc


    用let定义会打印三次

    证明了let定义的变量,每次循环都是一次新的变量
    2、let声明变量在块级作用域内会形成暂时性死区

    在块级作用域中,声明变量之前的区域就是暂时性死区
    “暂时性死区”也意味着typeof不再是一个百分之百安全的操作。

    声明变量反而会报错,不声明反而不会报错

    3、let不允许在相同的作用域内重复声明同一个变量

    4、变量提升(没有块级作用域)

    因为if块内的变量提升了,所以打印的是undefined,愿意是想让if作用域外的tmp打印全局定义的时间

    所以ES6有了块级作用域

    如果用var定义会打印10
    (每个花括号{}内都是一个块级作用域,ES6允许块级作用域的随意嵌套)

    5、const声明常量,一旦声明不能被改变,意味着会立即初始化,其他属性和let相同

    对于复合类型的变量,变量名不指向数据,而是指向数据所在的地址,const命令只是保证变量名指向的地址不变,并不保证改地址的数据不变

    上面的代码中,常量foo储存的是一个地址,指向一个对象,不变的是这个地址,不能把foo指向另一个地址,但对象本身是可变的,所以可以向对象添加新的属性

  • 相关阅读:
    C# 中的委托和事件
    C# 托管资源和非托管资源
    .NET Core 2.0
    PyQt5教程——事件和信号(5)
    PyQt5教程——布局管理(4)
    PyQt5教程——菜单和工具栏(3)
    PyQt5教程——第一个程序(2)
    PyQt5教程——介绍(1)
    如何通过 GitLab 进行在Azure WebApp中持续部署
    如何检测 Azure Web 应用沙盒环境文件系统存储量
  • 原文地址:https://www.cnblogs.com/snly/p/9143429.html
Copyright © 2020-2023  润新知