函数的定义
时间:2021-04-10 16:21:29
收藏:0
阅读:8
函数的定义
‘use strict‘;
function foo() {
var x = 1;
x = x + 1;
}
x = x + 2; // ReferenceError! 无法在函数体外引用变量x
由于JavaScript的函数可以嵌套,此时,内部函数可以访问外部函数定义的变量,反过来则不行:如下:
‘use strict‘;
function foo() {
var x = 1;
function bar() {
var y = x + 1; // bar可以访问foo的变量x!
}
var z = y + 1; // ReferenceError! foo不可以访问bar的变量y!
}
如果内部函数和外部函数的变量名重名怎么办?如下:
function foo() {
var x = 1;
function bar() {
var x = ‘A‘;
console.log(‘x in bar() = ‘ + x); // ‘A‘
}
console.log(‘x in foo() = ‘ + x); // 1
bar();
}
foo();
JavaScript的函数在查找变量时从自身函数定义开始,从“内”向“外”查找。如果内部函数定义了与外部函数重名的变量,则内部函数的变量将“屏蔽”外部函数的变量。
所以结果为:
x in foo() = 1
x in bar() = A
同时由于变量的作用范围是函数内部,所以在for循环等定义的变量作用域均为函数内部。
在函数外部定义的变量为全局变量。
原文:https://www.cnblogs.com/KeepInCode/p/14630326.html
评论(0)