• ES6回顾之let、var、const区别


    1、let、var、const区别

    var命令声明的,在全局范围内都有效

    • var命令会发生“变量提升”现象,即变量可以在声明之前使用,值为undefined
    • let声明的变量只在它所在的代码块有效
    • let命令它所声明的变量一定要在声明后使用,否则报错。在代码块内,使用let命令声明变量之前,该变量都是不可用的。这在语法上,称为“暂时性死区”
    • 只要块级作用域内存在let命令,它所声明的变量就“绑定”(binding)这个区域,形成了封闭作用域不再受外部的影响。
    • let不允许在相同作用域内,重复声明同一个变量。

    应该避免在块级作用域内声明函数。如果确实需要,也应该写成函数表达式,而不是函数声明语句。

    // ES5 环境
    function f() { console.log('I am outside!'); }
    
    (function () {
      function f() { console.log('I am inside!'); }
      if (false) {
      }
      f();
    }());
    

    上面代码在 ES5 中运行,会得到“I am inside!”,因为在if内声明的函数f会被提升到函数头部,实际运行的代码如下。

    // ES5 环境
    function f() { console.log('I am outside!'); }
    
    (function () {
      function f() { console.log('I am inside!'); }
      if (false) {
      }
      f();
    }());
    
    // 浏览器的 ES6 环境
    function f() { console.log('I am outside!'); }
    
    (function () {
      if (false) {
        // 重复声明一次函数f
        function f() { console.log('I am inside!'); }
      }
    
      f();
    }());
    // Uncaught TypeError: f is not a function
    
    2、关于ES6
    • 允许在块级作用域内声明函数。
    • 函数声明类似于var,即会提升到全局作用域或函数作用域的头部。
    • 同时,函数声明还会提升到所在的块级作用域的头部。

    const声明一个只读的常量
    const声明的变量不得改变值,这意味着,const一旦声明变量,就必须立即初始化,不能留到以后赋值。
    const的作用域与let命令相同:只在声明所在的块级作用域内有效。
    const命令声明的常量也是不提升,同样存在暂时性死区,只能在声明的位置后面使用。
    const声明的常量,也与let一样不可重复声明。

    3、ES6 声明变量的六种方法

    ES5两种:var命令和function命令。ES6 除了添加letconst命令,还有两种声明变量的方法:import命令和class命令。

  • 相关阅读:
    WPF中为窗体设置背景图片
    Silverlight自定义控件系列 – TreeView (4) 缩进
    Silverlight自定义控件系列 – TreeView (3) 添加展开和收起事件
    Silverlight自定义控件系列 – TreeView (2) 基本布局和States
    Silverlight自定义控件系列 – TreeView (1)
    WPF中的ControlTemplate(控件模板)
    绑定任意格式的XML文档到WPF的TreeView
    WPF具体使用中一些更深层的东西和与特效有关的技术
    浅谈WPF中对控件的位图特效(虚化效果、外辉光效果)
    WPF基础学习
  • 原文地址:https://www.cnblogs.com/smileyqp/p/12675372.html
Copyright © 2020-2023  润新知