美文网首页前端100问
【前端100问】Q27:关于 const 和 let 声明的变量

【前端100问】Q27:关于 const 和 let 声明的变量

作者: alanwhy | 来源:发表于2020-12-23 19:10 被阅读0次

写在前面

此系列来源于开源项目:前端 100 问:能搞懂 80%的请把简历给我
为了备战 2021 春招
每天一题,督促自己
从多方面多角度总结答案,丰富知识
关于 const 和 let 声明的变量不在 window 上
简书整合地址:前端 100 问

正文回答

在 ES5 中,顶层对象的属性和全局变量是等价的,var 命令和 function 命令声明的全局变量,自然也是顶层对象。

var a = 12;
function f() {}

console.log(window.a); // 12
console.log(window.f); // f(){}

但 ES6 规定,var 命令和 function 命令声明的全局变量,依旧是顶层对象的属性,但 let 命令、const 命令、class 命令声明的全局变量,不属于顶层对象的属性。

let aa = 1;
const bb = 2;

console.log(window.aa); // undefined
console.log(window.bb); // undefined
q26-1.png

通过上图也可以看到,在全局作用域中,用 let 和 const 声明的全局变量并没有在全局对象中,只是一个块级作用域(Script)中

怎么获取?在定义变量的块级作用域中就能获取啊,既然不属于顶层对象,那就不加 window(global)呗。

let aa = 1;
const bb = 2;

console.log(aa); // 1
console.log(bb); // 2

相关文章

  • 【前端100问】Q27:关于 const 和 let 声明的变量

    写在前面 此系列来源于开源项目:前端 100 问:能搞懂 80%的请把简历给我[https://github.co...

  • 工作中常用的 ES6 语法

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

  • (JS)

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

  • ES6常用及关键特性

    1、变量声明 let 和 const 其中let表示变量,const表示常量,const声明的变量被认为是常量,也...

  • ES6新语法特性收录

    let const 声明变量 1. let变量声明 let的特点是不会变量提升, 2. const 变量声明 c...

  • 关于ES6以及ES6常用的方法

    1、变量声明let和const let表示变量、const表示常量。let和const都是块级作用域。 2、模板字...

  • 2018-06-07深入浅出ES6(let与const)

    let和const都是声明(定义)用的,let是声明变量,而const是声明常量的。 变量:声明之后可以改变常亮:...

  • 我读ES6--变量声明

    1.关于var和let、const let、const与var一样,都是用来声明变量,但都有其特殊的用途。let ...

  • js var, let, const特性

    var, let, const 用来声明变量 一、let 用法 声明变量和var类似,但是所声明的变量,只在let...

  • ES6这些就够了

    1.变量声明const和let let表示变量、const表示常量。let和const都是块级作用域 2.模板字符...

网友评论

    本文标题:【前端100问】Q27:关于 const 和 let 声明的变量

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