js變數面試題

2021-07-25 16:35:33 字數 932 閱讀 1424

全域性作用域和區域性作用域

全域性作用域:整個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 ...