zoukankan      html  css  js  c++  java
  • Vue中 let 关键字

    let

    es6新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。

    不存在变量提升 

    var命令会发生”变量提升“现象,即变量可以在声明之前使用,值为undefined。这种现象多多少少是有些奇怪的,按照一般的逻辑,变量应该在声明语句之后才可以使用。

    为了纠正这种现象,let命令改变了语法行为,它所声明的变量一定要在声明后使用,否则报错。

    1
    2
    3
    4
    5
    6
    7
    // var 的情况
    console.log(foo); // 输出undefined
    var foo = 2;
     
    // let 的情况
    console.log(bar); // 报错ReferenceError
    let bar = 2;

    上面代码中,变量foovar命令声明,会发生变量提升,即脚本开始运行时,变量foo已经存在了,但是没有值,所以会输出undefined。变量barlet命令声明,不会发生变量提升。这表示在声明它之前,变量bar是不存在的,这时如果用到它,就会抛出一个错误。

    不允许重复声明  

    let不允许在相同作用域内,重复声明同一个变量。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // 报错
    function func() {
      let a = 10;
      var a = 1;
    }
     
    // 报错
    function func() {
      let a = 10;
      let a = 1;
    }

    因此,不能在函数内部重新声明参数

    1
    2
    3
    4
    5
    6
    7
    8
    9
    function func(arg) {
      let arg; // 报错
    }
     
    function func(arg) {
      {
        let arg; // 不报错
      }
    }
  • 相关阅读:
    [APIO2017]商旅(分数规划,spfa)
    Codeforces Round #542 div1
    Codeforces Round #556 (Div. 2)
    Codeforces Round #543
    Codeforces Round #534 (Div. 1)
    公式的复习?
    关于概率dp的HINT
    [JSOI2009]密码 [AC自动机]
    bzoj1444[Jsoi2009]有趣的游戏[AC自动机]
    「LibreOJ β Round #4」框架 [bitset]
  • 原文地址:https://www.cnblogs.com/appium/p/12305070.html
Copyright © 2011-2022 走看看