es6-let和const

2020-01-19  本文已影响0人  ysdyyy

1:let

基本语法

let 声明的变量,只在let命令所在的代码块内有效

{
    let a = 1;
    var b = 1;
}

for循环设置循环变量的那部分是一个父作用域,而循环体内部是一个单独的子作用域。

for (let i = 0; i<3; i++){
     let i = 'abc';
     console.log(i);
}
不存在变量提升
console.log(foo);// 输出undefined
var foo = 1;

console.log(b);// 报错ReferenceError
let b = 1;
暂时性死区

只要块级作用于内存在let命令,它所声明的变量就绑定这个区域,不再受外界影响

    var t = 1;
    if (true){
        t = 2;// ReferenceError
        let t;  
    }

在代码块内,使用let命令声明变量之前,该变量都是不可用的,这在语法上,成为“暂时性死区”

不允许重复声明

2:块级作用域

为什么需要块级作用域
ES6的块级作用域

let 实际上为JavaScript新增了块级作用域

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

内层作用域可以定义外层作用域的同名变量。

函数能不能在块级作用域中声明?

3:const

基本用法
     const PI = 3.14;

声明一个只读常量。

本质

4:顶层对象的属性

   window.a=1;
   a;//1  

参考:http://es6.ruanyifeng.com/#docs/let

上一篇下一篇

猜你喜欢

热点阅读