美文网首页
我读ES6--变量声明

我读ES6--变量声明

作者: 叫我徐小星 | 来源:发表于2018-10-09 08:27 被阅读5次
    1.关于var和let、const

    let、const与var一样,都是用来声明变量,但都有其特殊的用途。
    let 、const作用域在{}之间,重复使用let、const会报错、定义之前不能使用
    const只能赋值一次 且只能声明的时候赋值,如const a=1;

    以下一段用var声明:

    var x = 'outer';
    function test(inner) {
      if (inner) {
        var x = 'inner';
        return x;
      }
      return x;
    }
    test(false); //undefined
    test(true); //"inner"
    

    我们知道,函数中由于变量提升,所以test(false)的值是undefined;

    以下一段用let声明:

    let x = 'outer';
    function test(inner) {
      if (inner) {
        let x = 'inner';
        return x;
      }
      return x;
    }
    test(false);//"outer"
    test(true);//"inner"
    

    现在if前面也定义一个x变量,如下:

    let x = 'outer';
    function test(inner) {
      let x='mid';
      if (inner) {
        let x = 'inner';
        return x;
      }
      return x;
    }
    test(false);//"mid"
    test(true);//"inner"
    

    由上可知:let为块作用域,不会像var一样变量提升。

    const:对于不希望被改变的常量,则可用const声明,如:

    const x = 'a';
    

    后面再给x赋值将会报错。

    2.关于箭头函数

    箭头函数的产生:弱化this的用法

    相关文章

      网友评论

          本文标题:我读ES6--变量声明

          本文链接:https://www.haomeiwen.com/subject/gtpwbttx.html