Node.js 4.0 互动版

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

块级作用域

很多语言中都有块级作用域,JavaScript使用var声明变量,以function来划分作用域,大括号“{}” 却限定不了var的作用域。用var声明的变量具有变量提升(declaration hoisting)的效果。

ES6里增加了一个let,可以在{}iffor里声明。用法同var,但作用域限定在块级,let声明的变量不存在变量提升。

'use strict';
function f1() {
  var a = 1;
  let n = 2;
  if (true) {
      var a = 20;
      let n = 10;
  }
  console.log(n); // 2
  console.log(a); // 20
}
f1();