您的位置:首页 > Web前端 > Node.js

【译】【nodeschool】【scope-chains-closures】作用域

2018-05-14 22:09 363 查看

作用域链与闭包工作

作用域,作用域链,闭包以及垃圾回收它们有一个共同点:那就是它们通常都是手动执行的。闭包实际上是如何工作的?垃圾回收在什么时候发生?作用域链到底是什么?

通过这次学习,我们将发现这些并不是什么黑魔法。我们没有必要去一一解释这些语言特性,实际上就算不理解它们你也已经使用它们很长时间了。

作用域

在JavaScript中最主要的作用域是词法作用域。目前在学习语言的开始,我们通过函数function创造了一个作用域,这也是所有开发者都熟悉的用法。

ES6在不久前定义了块级作用域,通过花括号包裹住一个块级作用域。

变量初始化

可以通过变量初始化方式来决定它将属于何种作用域类型。

词法作用域

var 可以用来声明一个变量处于当前函数作用域中如:

function someFunc ()  {
var aVariable;
}

aVariable 作用范围在someFunc函数中

块级作用域

let 和 const 用来声明一个变量处于当前花括号所包裹的块级作用域中:

if (true) {
let aVariable;
}

aVariable变量处于 if语句声明的块级作用域中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: