日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

作用域解析题

發布時間:2025/3/15 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 作用域解析题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  1.var a=12

  ? function fn(){

    console.log(a)? ? ? ?//undefined

    var a=45

    console.log(a)? ? ? //45

    }

  fn()

  案例解析畫圖:

  

  2.var a=12;

  ? ?function fn(){

    console.log(a)? ? ? ? //12

    a=45

    console.log(a)? ? ? ? //45

    }

  fn()

  畫圖分析

  

  3.function fn(){

    console.log(11)

    function ff(){

      console.log(22)

    }

    ff()

  }

  fn()? ? ? //11? ?22

  ff()? ? ? ? //xxx.is not defined

  畫圖解析:

  

  4. 函數遞歸(函數自己內部自己調用自己)

  function fn(){

    xonsole.log(5)

    fn()

  fn()

?  畫圖解析

  

  5.function fn(){

    console.log(12)

    }

  var as=fn()

  console.log(as)? ? ? //每個函數都有自己的返回值,return,return是什么就返回什么,如果沒有就是undefined?

  畫圖解析

  

  6.var a=12;

  ? ? function fn(){

     console.log(a)? ? ? //undefined

    ? ?return 4

    ? var a=45

    }

  fn()

  畫圖解析:

  

  7.var a=45

  ? function fn(a){

    console.log(a)? ? ?//undefined

    }

  fn()

?  畫圖解析:

  

?

?  8.var a=123

  ? ? function fn(){

    alert(a)? ? ?//123

    }

  fn()

  畫圖解析:

  

  9.var a=123

  ? ?function fun(){

    alert(a)

    var a=456

    }

  fun()? ? ? ?//undefined

  alert(a)? ? ?//123

  畫圖解析:

  

  10.var a=123

   function fun(){

    alert(a)

    a=456

  }

  fun()? ? ?//123

  alert(a)? ? ? ?//456

  畫圖解析:

  

  11.var a=123

    function fun(a){

      alert(a)

      a=456

    }

  fun()? ? ? ? ? //undefined

  alert(a)? ? ? //123

  畫圖解析:

  

  12.var a=123

   function fun(a){

      alert(a)

      a=456

    }

  fun(123)

  alert(a)

?  畫圖解析:

  

  形參于實參的區別:

  形參:相當于一個私有變量,

  實參:對形參的賦值,如果是數字,則直接對形參賦值,如果是字母,則會通過作用域鏈查找字母的賦值情況,然后給形參傳參,如果沒有,則意味著執行模塊沒有對形參賦值的情況,就需要通過形參來向上查找

  13.console.log(totai)? ? ? ? ?//undefined

  ? ? ?var total=0;

    function fn(num1,num2){

      console.log(total)? ? ? ?//undefined

      var total=num1+num2

      console.log(total)? ? ? //300

     }

  fn(100,200)

  console.log(total)? ? ? ? 0

  畫圖解析:

  

  14.var to=1;

  ? ? ?function fn(n1,n2){

    console.log(to)

    to=n1+n2

    console.log(to)

  fn(10,20)

  console.log(to)

  畫圖解析:

  

  15.function fn(a){

    console.log(a)

    var a=123

    console.log(a)

    function a(){}

    console.log(a)

    var b=function(){}

    console.log(b)

    function d(){}

    }

  fn(1)

  畫圖解析:

  

   如果形參,聲明變量,函數名同名時,在預解釋的時候只聲明一次,其他的都是在賦值時后面會把前面的覆蓋掉

   權重為 形參<聲明變量<函數名

  16.function test(a,b){

    console.log(b)? ? ? //function b(){}

    console.log(a)? ? ? //1

    c=0;

    var c;

    a=3;

    b=2;

    console.log(b)? ? 2

    function b(){}

    function d(){}

    console.log(b)? ? ?2

  }

  test(1)

   畫圖解析:

  

  17.function test(a,b){

    console.log(a)

    console.log(b)

    var b=234

    console.log(b)

    a=123;

    console.log(a)

    function a(){}

    var a

    b=234

    var b=function(){}

    console.log(a)

    console.log(b)

    }

  test(1)

  畫圖分析:

  

  18. 銷毀案例? (閉包)

  function fn(){

      var a=12;

      a++

      console.log(a)

   }

  fn()? ? ?13

  fn()? ? ?13

  fn()? ? ?13

  畫圖解析:

  

?

?  19.解決辦法

  function fn(){

    var a=12

    return function(){

      a++

      console.log(a)

      }

   }

  var ss=fn()

  ss()

  ss()

  ss()

?  20.+function(){

     var a=5

    ? ? function a(){}

     alert(a)? ?5

     function b(){}

     b=6;

     alert(b)? ? ?6

     var c=d=b

    }()

  alert(d)? ? ?6

  alert(c)? ? is not defined

  畫圖解析:

  

?

轉載于:https://www.cnblogs.com/shangjun6/p/10055323.html

總結

以上是生活随笔為你收集整理的作用域解析题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。