zoukankan      html  css  js  c++  java
  • 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指向另一个地址,但对象本身是可变的,所以可以向对象添加新的属性

  • 相关阅读:
    错误:The columns and the margins do not fit the page width.
    jasperreport使用动态jason数据源
    DynamicReport使用XML数据源+ireport的.jxml文件作为模板
    Report bands中文版
    iReport 使用json 数据源
    bat设置java环境变量
    解决DynamicReports中含有中文pdf版本不显示
    vba实现excel二级联动多选功能
    打字游戏 C语言
    fpga 任意分频 奇偶数 分频
  • 原文地址:https://www.cnblogs.com/snly/p/9143429.html
Copyright © 2011-2022 走看看