相关疑难解决方法(0)

为什么JavaScript提升变量?

为什么JavaScript提升变量?

设计师决定实施吊装时的理由是什么?还有其他流行语言吗?

请提供文档和/或记录的相关链接.

javascript hoisting

77
推荐指数
2
解决办法
6760
查看次数

为什么不提升ES6课程?

由于ES6类只是JavaScript现有的基于原型的继承 [1]语法糖,因此(IMO)提升它的定义是有道理的:

var foo = new Foo(1, 2); //this works

function Foo(x, y) {
   this.x = x;
   this.y = y;
}
Run Code Online (Sandbox Code Playgroud)

但以下方法不起作用:

var foo = new Foo(1, 2); //ReferenceError

class Foo {
   constructor(x, y) {
      this.x = x;
      this.y = y;
   }
}
Run Code Online (Sandbox Code Playgroud)

为什么不提升ES6课程?

javascript ecmascript-6

55
推荐指数
3
解决办法
7531
查看次数

在ES6中吊装的目的是什么?

我知道这let将被提升到块的顶部,但是在初始化之前访问它将抛出ReferenceError到期Temporal Dead Zone

例如:

console.log(x);   // Will throw Reference Error
let x = 'some value';
Run Code Online (Sandbox Code Playgroud)

但是像这样的代码片段会运行而不会出错:

foo(); // alerts foo;
function foo(){    // foo will be hoisted 
  alert("foo");
} 
Run Code Online (Sandbox Code Playgroud)

我的问题

let当它在访问时会出现错误时,将其提升到顶部的目的是什么?也有var遭受TDZ的影响,我知道什么时候会抛出,undefined但是因为TDZ?

javascript ecmascript-6

6
推荐指数
1
解决办法
693
查看次数

标签 统计

javascript ×3

ecmascript-6 ×2

hoisting ×1