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);
    }  
}    

从内层往外找  直到最外层找不到时报错

  

猜你喜欢

转载自www.cnblogs.com/Samuel-Leung/p/10809016.html