302 字
2 分钟
Loading
作用域和变量的访问原则

和c语言一样,JavaScript也有用函数的作用域。

请看以下代码:

for ( let i = 0; i < 3; i++ )
{
doucment.write('数字是:')
}
console.log(i)

输出结果会是什么呢?

其实会报错!i is not defined

因为i的声明在for循环的循环头部,一旦出循环就会失效,因此是不能在循环外部打印i的。

作用域#

通常来说,一段程序代码中所用到的名字并不总是有效和可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域

全局作用域:全局有效,即整个<script> 内都可以正常使用。

局部作用域:只在某一部分有效

特殊:如果函数内部没有声明直接赋值,会被当作全局变量处理

↑不建议这样写。

此外,函数中的形参也可以被看作是局部变量

不同作用域的变量,名字可以重复。也不冲突->使用就近原则,使用最接近的局部作用域。

function f1() {
let num = 123
function f2() {
let num = 0
console.log(num)
}
f2()
}
let num = 456
f1()

控制台会输出 0

作用域和变量的访问原则
https://vilstia.pages.dev/posts/学习笔记/javascript/作用域和变量的访问原则/
作者
琴泠
发布于
2026-03-26
许可协议
CC BY-NC-SA 4.0