第十四关:领地之争

任务目标:理解全局变量 vs 局部变量

🦸‍♂️

JS 队长

变量是有“领地”的,我们称之为作用域 (Scope)

有的变量是世界公民 (全局),哪里都能去。

有的变量是宅男 (局部),只能待在自己的函数房子里。

🏠 局部作用域 (Local Scope)

在函数内部声明的变量,是局部的。出了函数就没人认识它了。

function myFunction() { var carName = "Volvo"; // 这里可以使用 carName } // 这里不能使用 carName (会报错!)
🐛

巴格

我在 myFunction 里偷了一辆车,为什么外面警察抓不到我?

(JS 队长:因为出了函数,那辆车就不存在了!)

🌍 全局作用域 (Global Scope)

在函数外面声明的变量,是全局的。任何函数都能访问它。

var carName = "Volvo"; function myFunction() { // 这里可以用 carName }

🎮 侦探任务:变量去哪了?

看下面的代码,判断 result 的值是多少。

var x = 10; // 全局 function test() { var x = 5; // 局部 (这叫“变量遮蔽”,局部优先) return x; } var result = test();

result 是多少?