JavaScript中的Hoisting


本文作者: jsweibo

本文链接: https://jsweibo.github.io/2020/03/02/JavaScript%E4%B8%AD%E7%9A%84Hoisting/

摘要

本文主要讲述了:

  1. 什么是 Hoisting
  2. 变量
  3. 函数

正文

什么是 Hoisting

变量提升,是 JavaScript 的一种语法特性

JavaScript 允许开发者提前使用使用var定义的变量使用function定义的函数而后再补充定义,即先上车后补票

注意:

  1. 区别于“使用从始至终从未定义的变量或函数”
  2. 尽管 JavaScript 支持这项特性,但并不推荐开发者使用它

变量

JavaScript 会提升变量的定义,但不会提升变量的初始化

如果开发者提前使用变量,由于初始化未被提升,因此变量的值为undefined

示例:

1
2
3
console.log(foo);
var foo = 'bar';
console.log(foo);

相当于

1
2
3
4
var foo;
console.log(foo);
foo = 'bar';
console.log(foo);

函数

JavaScript 会提升函数的定义

示例:

1
2
3
4
5
6
7
sayHello();

function sayHello() {
console.log('hello, world!');
}

sayHello();

相当于

1
2
3
4
5
6
function sayHello() {
console.log('hello, world!');
}

sayHello();
sayHello();

参考资料

本文作者: jsweibo

本文链接: https://jsweibo.github.io/2020/03/02/JavaScript%E4%B8%AD%E7%9A%84Hoisting/


本文对你有帮助?请支持我


支付宝
微信