美文网首页Web 前端开发 让前端飞
004_ES6知识点总结(01)let及const声明

004_ES6知识点总结(01)let及const声明

作者: maze1943 | 来源:发表于2020-02-06 11:01 被阅读0次

ES6知识点整理

近期准备面试,把ES6的内容详细复习一遍
整理来源素材:
阮一峰《ES6标准入门》(第三版);
https://www.youtube.com/watch?v=5s35h_6v4ZI&list=PLCRqr1mERvdJ0IZMD1U4oSB7k0gyAjyIx

[toc]

01 var、let、const

01.1 块级作用域

let及const声明方式类似var,var属于function scope,在function中定义则仅在function内部有效,否则就是全局变量。但let和const是block scope,其只在命令行所在的代码块中有效

{
    let a = 1;
    var b = 2;
}
a;//Reference Error
b;//2

这个特性使let很适合于for循环的计数器

var a = [];
for(var i = 0; i <10; i++){
    a[i] = function(){
        console.log(i);
    }
}
a[6]();//10

var a = [];
for(let i = 0; i < 10; i++){
    a[i] = function(){
        console.log(i);
    }
}
a[6]();//6

01.2 不存在变量提升

var声明存在变量提升,而let和const是不存在的,必须先声明再使用,否则抛出ReferenceError

01.3 暂时性死区

var temp =123;
if(true){
    temp = 'abc'//ReferenceError
    let temp;
}

如以上代码所示,如果代码块中存在let或const声明,则这个块中声明的这些变量将形成封闭作用域,在声明前不可使用,即“暂时性死区”。

01.4 不允许重复声明

同一作用域内不允许重复声明let或const声明的变量

01.5 const声明一个只读的常量

const可以声明一个常量,其值不可改变,所以const声明必须在声明的同事为其初始化。
另外,const声明的对象,其属性是可以修改的,因为const不可变的本质是变量指向的地址不可变。如果真的想冻结对象,可以使用Object.freeze()

01.6 脱离顶层对象

let及const声明的变量,以及后面提到的class,所声明的全局变量,不再是顶层对象的属性,在浏览器环境中的表现就是let及const的全局变量,不再挂载在window下。

相关文章

  • 004_ES6知识点总结(01)let及const声明

    ES6知识点整理 近期准备面试,把ES6的内容详细复习一遍整理来源素材:阮一峰《ES6标准入门》(第三版);htt...

  • 深入理解ES6--1.块级绑定

    主要知识点有:var变量提升、let声明、const声明、let和const的比较、块级绑定的应用场景 1. va...

  • es6知识点和题目

    知识点: let和const 暂时性死区 let和const命令声明的变量无变量提升。如果区块中存在let和con...

  • 工作中常用的 ES6 语法

    变量声明 let 和const 不用var, 用const声明只读变量,let声明变量。let和const都是块级...

  • 3小时入门javascript

    JS基本数据类型及变量声明在js中有三种声明变量的方式:var let const,let var const的区...

  • ES6

    let var const var 可声明前置 let不可声明前置 let不可重复声明 存在块级作用域 const...

  • ES6基础

    变量声明var let 常量声明const const number = 1;let title = "详情页";...

  • 前端小知识<2>

    1、var、let 及 const 区别 var 存在提升,可以在声明之前使用 值为 undefined。let、...

  • (JS)

    ES6 let、const和var的区别 let和const声明变量不存在变量提升 let和const不能重复声明...

  • ES6快速使用

    let const let&const介绍let:声明变量,类似于var,但let所声明的变量只在let命令所在的...

网友评论

    本文标题:004_ES6知识点总结(01)let及const声明

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