zoukankan      html  css  js  c++  java
  • 作用域问题

    1、

      var   a=123;

      function  fun(){

        alert(a)  //123    

       }

      fun()

    2、

      var   a=123;

      function   fun(){

        alert(a);  //undefined,作用域:此时的a应该访问函数内声明的a,但是变量声明分两步:变量创建+变量初始化(初始化为undefined).然后才是赋值。因此,此处

                输出undefined(这里面也有个变量提升的问题在里面)

        var a=456;

       }

      fun()

      alert(a)  //123

    3、

      var   a=123;

      function   fun(){

        alert(a);  //123   在函数题内没有找到变量a的声明,于是在外层找,找到外层全局声明var a=123,于是调用函数时,输出123

        a=456;

       }

      fun()

      alert(a)    //456

    4、

      var   a=123;

      function   fun(a){

        alert(a);  //undefined   没有传参

        a=456;

       }

      fun();

      alert(a)  //123

    5、

      var   a=123;

      function    fun(a){

        alert(a);  //123     传参进来后步骤如同题3

        a=456;

       }

      fun(123)

      alert(a)  //123

    6、

      var   a=12;

      function   fn(){

        console . log(a)  //undefined

        var   a=45;

         console . log(a)  //45

       }

      fn()

    7、

      var   a=12;

      function   fn(){

        console . log(a)  //12

        a=45;

        console . log(a)  //45

        }

      fn()

    8、

      function   fn(){

        console . log(11) 

        function    ff(){

          console . log(22)

          }

        ff()  //22

      }

      fn()  //11

    9、

      var   a=12;

      function   fn(){

        console . log(a)  //undefined   同题2

        return  4;

        var  a=45;

       }

      fn()

    10、

      var   a=45;

      function    fn(a){

        console . log(a)  //undefined  没有传参

       }

      fn()

    11、

      console . log(total);  //undefined

      var   total=0;

      function  fn(num1,num2){

        console . log(total);  //undefined   同题2

        var  total=num1+num2;

        console . log(total)   //300

       }

      fn(100,200)

      console . log(total)    //0     是全局的total

    12、

      console . log(to)    //undefined

      var   to=1;

      function   fn(n1,n2){

        console . log(to)   //1

        to=n1+n2;

        console . log(to)    //30

       }

      fn(10,20)

      console . log(to)    //30

    13、

      function  fn(a){

        console . log(a)  //function

        var   a=123;

        console . log(a)  //123

        function  a(){ }

        console . log(a)  //123

        var  b=function(){ }

        console . log(b)  //function

        function b(){ }

       }

      fn(1)

      注:如果我们声明得变量和函数同名了,在预解释得时候只声明一次

    14、

      function test(a,b){

        console . log(b)  //function

        console . log(a)  //1

        c=0;

        a=3;

        b=2;

        console . log(b);    //2

        function   b(){ }

        function   d(){ }

        console . log(b)    //2

       }

      test(1)

    15、

      fun

  • 相关阅读:
    PAT 解题报告 1009. Product of Polynomials (25)
    PAT 解题报告 1007. Maximum Subsequence Sum (25)
    PAT 解题报告 1003. Emergency (25)
    PAT 解题报告 1004. Counting Leaves (30)
    【转】DataSource高级应用
    tomcat下jndi配置
    java中DriverManager跟DataSource获取getConnection有什么不同?
    理解JDBC和JNDI
    JDBC
    Dive into python 实例学python (2) —— 自省,apihelper
  • 原文地址:https://www.cnblogs.com/GinaHan/p/11449445.html
Copyright © 2011-2022 走看看