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);
- }
- }
- 从内层往外找 直到最外层找不到时报错