🦸♂️
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 是多少?