js面試題-----範圍與閉包

來源:互聯網
上載者:User

標籤:面試   定義   不同   prevent   str   def   htm   his   執行   

1、問題代碼:

var length = 10;function fn(){    console.log(this.length);}var obj = {    length:5,    method:function(fn){        fn();        arguments[0]()    }}obj.method(fn,1);//輸出10  2

  解答:第一個fn執行的this是指向window 的所以this.length指的是10   而arguments[0]()可以理解為下面代碼 這裡的length是arguments本身的自己的length屬性

var arguments = {     0:fn,     1:1,     .     .     .     length:2  }

2、問題代碼 

var obj = {    getName:function(){        console.log(this)    }}obj.getName();//obj(obj.getName)();//obj(obj.getName = obj.getName)()//window

  解答:  第一個很明顯 getName執行的this是obj    第二個不是很理解  大概理解為obj.getName是一個整體  自執行函數執行   也就是getName執行  所以 跟第一個一樣 也是obj

  第三個可以這麼理解  兩邊賦值之後的結果為function (){console.log(this)} = function (){console.log(this)}  所以此時執行的this是代表window(第二個希望有會的可以評論講解一下 謝謝)

題目1:說一下對變數提升的理解

答案:使用var定義的變數或者函數運算式在代碼執行的時候 會先進行變數提升(聲明)  即先賦值為undefined;而函式宣告 會同時定義和聲明

題目2:說明this幾種不同的使用情境

答案:作為建構函式執行   作為對象屬性執行  作為普通的函數執行   call  apply  bind

題目3:建立10個<a>標籤,點擊的時候彈出來對應的序號

答案:這裡主要通過自執行函數來擷取每次迴圈的時候的i值

var i,a;for(i = 0;i<10;i++){  (function(i){     a = document.createElement(‘a‘);     a.innerHTML = i+‘<br>‘;     a.addEventListener(‘click‘,function(e){        e.preventDefault();        alert(i);     })     document.body.appendChild(a);   })(i)}                        

題目4:如何理解範圍

答案:函數執行的時候  就會建立一個私人的範圍供裡面的代碼執行。當函數裡面要訪問變數的時候,首先會在自己的範圍當中進行尋找,如果找不到會到其父級的範圍中繼續尋找,這就形成了一個範圍鏈。

題目5:實際開發中閉包的應用

答案:延長變數的生命週期,可以是函數外面訪問函數內部的變數。

js面試題-----範圍與閉包

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.