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

  • 相关阅读:
    父亲对子女的话
    开通博客
    在linux下安装MySQLdb及基本操作
    java 词汇表速查手册
    java数据源的几种配置
    DBCP的参数配置
    Linux crontab定时执行任务
    很好看的Button CSS.
    C# 创建活动目录.txt
    解密存储过程
  • 原文地址:https://www.cnblogs.com/snly/p/9143429.html
Copyright © 2011-2022 走看看