美文网首页
ES6-let & const

ES6-let & const

作者: hunter97 | 来源:发表于2021-01-15 11:13 被阅读0次

一. letvar

let 是块级作用域;var 是函数级作用域。

// 示例一
{
    var a = 12;
    let b = 15;
    {
        console.log(a); //可以访问到
        console.log(b); //可以访问到
    }
}
console.log(a); //可以访问到
console.log(b); //访问不到

// 示例二 泄密
for (var i = 0; i < 5; i++) {}
console.log(i); //可以访问到
for (let j = 0; j < 5; j++) {}
console.log(j); //访问不到

// 示例三 提升
function f() {
    console.log(a); //可以访问到,值为undefined
    var a = 5; 
}
f();
function f1() {
    console.log(a); //访问不到
    let a = 5; 
}
f1();
// 实例
var arr = [],
  arr1 = [];
function f() {
  for (var i = 0; i < 5; i++) {
    // 此时i被提升为整个f()函数的变量,所以被访问到的只执行完累加的值
    arr.push(function () {
      console.log(i);
    });
  }
  for (let j = 0; j < 5; j++) {
    // 此时j为for循环内部的值,没有被提升
    arr1.push(function () {
      console.log(j);
    });
  }
}
f();
arr[2](); //输出5
arr[3](); //输出5
arr1[2](); //输出2
arr1[3](); //输出3
二. let 与 const

letconst作用域都是一样的,只不过const定义的是常量,不可以修改。这里的不可以更改是对物理内存地址不可以更改。

const a = 5;
a = 6; //不可以更改
console.log(a);
const b = {
    name:'cuiht'
};
b.name = 'hunter'; //可以更改
console.log(b);
Object.freeze(b); //冻结对象b,使其彻底不可更改
b.name = 'cuiht'; //不可以更改
console.log(b);

注意 const 限制的是给常量分配值,而这个常量的值又是不可更改的。
const有一个很好的应用场景,就是当我们引用第三方库的时声明的变量,用const来
声明可以避免未来不小心重命名而导致出现bug。例如const monent from 'moment'

人生舞台的大幕随时都可能拉开,关键是你愿意表演,还是选择躲避。

相关文章

  • ES6-let & const

    一. let与var let 是块级作用域;var 是函数级作用域。 二. let 与 const let与con...

  • ES6-let const

    let特性1.不能重复申明2.块级作用域 全局 函数 eval3.不存在变量提生4.不影响作用域链 const声明...

  • 复习

    复习 函数作用域 全局作用域 局部作用域 块级作用域(es6-let,const) 优先级局部变量(函数体内声明的...

  • html5+es6

    复习 函数作用域 全局作用域 局部作用域 块级作用域(es6-let,const) 优先级局部变量(函数体内声明的...

  • es6-let与const

    作用域的概念 es5 两个作用域:全局作用域、函数作用域 es6 增加了块作用域 let let var 作用域不...

  • ES6-let 与 const

    1.let命令 基本概念 let语法类似于var,不同点在于let定义的变量只在定义它的代码块中有效。 {var ...

  • es6-let和const

    1:let 基本语法 let 声明的变量,只在let命令所在的代码块内有效 for循环设置循环变量的那部分是一个父...

  • ES6-let 和 const 命令

    参考文章:let 和 const 命令 本书中提到 ES6 的地方,一般是指 ES2015 标准,但有时也是泛指“...

  • ES6-let 、const 以及解构赋值

    let 定义的变量不会被变量提升,并且是块级作用域,相同作用域下变量不能重复定义; let 定义变量在全局作用域中...

  • ES6-let,const介绍以及解构赋值

    1.let 和 const 命令 首先了解概念:函数作用域和块作用域:ES5只有全局作用域和函数作用域,没有块级作...

网友评论

      本文标题:ES6-let & const

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