java python js作用域的对比
1 java的作用域以代码块为作用域 也就是{}
2 python中是以函数作为作用域:比如
def func():
if 1==1:
name="a"
print(name)
func() 不会报错 因为Python是以函数作为作用域
3 js和Python一样是以函数作为作用域的
ps:(1) 函数的作用域在函数未被调用之前 已经创建
(2)函数的作用域存在作用域链 并且也是在被调用前创建(函数套函数)如:function func(){
function inner(){}
}
(3) 函数内 局部变量提前声明
a = "aa"; function func(){ var a = "abc"; function inner(){ var a = "cba"; console.log(a); } } 从内层往外找 直到最外层找不到时报错