宣告提公升面試題 陷阱

2021-10-08 14:34:00 字數 717 閱讀 4195

先來**:

var fn1 =

'ivan'

;var name =

'good'

;var

fn1=

function

(y)function

fn1(x)

function

fn2(x)

fn1(fn2)

;

這裡是乙個特殊情況,也就是變數同名的時候,在這個地方函式表示式,變數,函式宣告都是一樣的名字。

這裡的提公升順序是這樣的:函式宣告直接提公升到最前面,接下來是變數【字面量】,函式表示式是不動的。

改變以後的順序是這樣的:

function

fn1(x)

var fn1 =

'ivan'

;var name =

'good'

;var

fn1=

function

(y)function

fn2(x)

fn1(fn2)

;

這裡fn1(fn2)呼叫的是改變以後最前面的fn1的函式宣告的函式。所以輸出以上值。對了。在fn2裡面是有name的只是涉及到乙個變數提公升。所以前兩個輸出undefined

一道面試題 變數宣告提公升

問列印結果 var getname function function getname console.log getname 結果是 4 其實這道題可以翻譯成 var getname function getname getname function console.log getname 4 把...

java面試題的陷阱

1.abstract class name 錯。abstract method必須以分號結尾,且不帶花括號。2.public class something 錯。區域性變數前不能放置任何訪問修飾符 private,public,和protected final可以用來修飾區域性變數 final如同a...

經典面試題陷阱之無限迴圈

在vs環境下,請看下面的 輸出的結果是什麼?includeint main for i 0 i 12 i return 0 大家一看到這道題肯定會以為越界訪問了,程式會掛掉。但是這道題裡確實是有一點陷阱的,我們執行起來,這個程式輸出的結果盡然是無限迴圈的hehe。下面讓我們一起來 一下 首先,我們來...