全域性作用域和區域性作用域
全域性作用域:整個js執行環境
區域性作用域:通過建立乙個函式就開闢出了乙個區域性作用域
全域性變數和 區域性變數
全域性變數:在全域性作用域都可以訪問的變數
區域性變數:只能在當前區域性作用域訪問的
變數宣告提公升:
如果變數宣告在函式裡面,則將變數宣告提公升到函式的開頭
如果變數宣告是乙個全域性變數,則將變數宣告提公升到全域性作用域的開頭
變數執行(搜尋)機制:
首先看,有沒有區域性作用域
如果有,查詢是不是這個區域性作用域定義的變數
如果不是,尋找上一級作用域,直到找到全域性作用域
如果全域性作用域也找不到這個變數,這個變數就是未定義的 undefined
第一題:
var a=1;
function test()
test();
根據變數宣告提公升和變數搜尋機制,函式test()應為
function test()
第二題:
var b=2;
function test2()
test2();
任何通過附加在window上的變數都相當於宣告乙個全域性變數,或者是給全域性變數賦值
第三題:
c=5;
function test3()
test3();
根據變數宣告提公升和變數搜尋機制:
c=5;//宣告乙個全域性變數c
function test3()
test3();
前端JS面試題
在引數過多的時候,call 的效能會好一些 console.time 可以測試一段程式執行的時間 console.timeend 假設 arr 是乙個陣列,它之所以可以呼叫 arr.push 這個方法式因為 它是array的例項,可以繼續呼叫array原型上面的 push 方法 function f...
js函式面試題
一var name the window var object alert object.getnamefunc 題中有兩個alert輸出,我們首先看第乙個alert,這個alert所在的函式是在最後乙個alert裡面被呼叫的,呼叫的時候,裡面的this指向的是object,所以是在object裡面...
js面試題 this指向
關於this,我們需要了解兩點 在一些文件中曾看到過js中this指向被分為n中情況,我個人感覺這是在將簡單問題複雜化,解決問題的本質是將問題模型化,簡單化,而不是引入多個特殊情況分析 用阮一峰曾講過的一句話,this指向完全取決於當前執行環境 var name lucy var obj say2 ...