主页

JavaScript scope (作用域)

2024-07-03 12:21PM

JavaScript 有以下几种作用域:

1.全局作用域:全局作用域贯穿整个javascript文档,在所有函数声明或者大括号之外定义的变量,都在全局作用域里。一旦你声明了一个全局变量,那么你在任何地方都可以使用它,包括函数内部。

2.局部作用域:局部作用域一般只在固定的代码片段内可访问到,而其外部是无法访问的,它分为函数作用域和块级作用域。

2.1:函数作用域: 当你在函数里定义一个变量时,它在函数内任何地方都可以使用。在函数之外,你就无法访问它了。

2.2:块级作用域:你在使用大括号 {...} 时,声明了一个const或者let的变量时,你就只能在大括号内部使用这一变量。

eg:

// 全局作用域
var globalVar = 'I am global';

function outerFunction() {
  // 外部函数作用域
  var outerVar = 'I am outside!';

  function innerFunction() {
    // 内部函数作用域
    var innerVar = 'I am inside!';
    console.log(innerVar); // 'I am inside!'
    console.log(outerVar); // 'I am outside!'
    console.log(globalVar); // 'I am global'
  }

  innerFunction();
}

outerFunction();
console.log(globalVar); // 'I am global'
console.log(outerVar); // 报错: outerVar is not defined
console.log(innerVar); // 报错: innerVar is not defined 

返回>>

登录

请登录后再发表评论。

评论列表:

目前还没有人发表评论