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

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

  

posted @ 2019-05-04 17:09  Samuel-Leung  阅读(207)  评论(0编辑  收藏  举报