zoukankan      html  css  js  c++  java
  • [ES6] 04. The let keyword -- 2 Fiald case

    Fiald case 1: let can work in it's block

    {
        let a = 10;
        var b = 1;
    }
    
    a // ReferenceError: a is not defined.
    b //1

    Case 2: Let has no "Hosting" Problem

    function do_something() {
      console.log(foo); // ReferenceError
      let foo = 2;
    }
    function do_something() {
      console.log(foo); //undefined
      var foo = 2;
    }
    
    //hosting:
    function do_something() {
     var foo = undefined;   
      console.log(foo); 
      foo = 2;
    }

    Case 3: let不允许在相同作用域内,重复声明同一个变量: In a block, you can only define one variable one time.

    // 报错
    {
        let a = 10;
        var a = 1;
    }
    
    // 报错
    {
        let a = 10;
        let a = 1;
    }

    But if you do something like:

    function f1() {
      let n = 5;
      if (true) {
          let n = 10;
      }
      console.log(n); // 5
    }

    There is no problem! becuase 5 and 10 are in different block scope.

  • 相关阅读:
    Celery(异步任务,定时任务,周期任务)
    SQLAlchemy的应用创建
    SQLAlchemy多对多
    SQLAlchemy
    app开发-2
    app开发-3
    app开发-1
    MongoDB-pymongo
    MongoDB-增删改查
    MongoDB-数据类型
  • 原文地址:https://www.cnblogs.com/Answer1215/p/4109489.html
Copyright © 2011-2022 走看看