一到關於js函式的前端面試題引發的血案

2022-03-16 04:20:28 字數 1316 閱讀 8073

題目如下:

1 f = function() ;

2 g = function() ;

3 (function

() ;

6function g() 7}

8})();

9 alert(f()); //

true or false ?

看ie6、ie7、ie8與其它非ie下的不同?

1

var f = function

foo(); //

`foo` is never visible "outside"

4typeof foo; //

"undefined"

5 f(); //

"function"

除ie6、7、8外,其它瀏覽器均顯示foo為undefined 

這是jscript的bugs,好像ie9的beta2中已經修復了?(尚未安裝過,有待證實) 

ie中有兩個「特性」 

1、函式宣告中的識別符號允許包含.運算子,例如function window.onload() {} 

2、函式表示式中的識別符號可以被函式外部訪問 

var f = function g(){}; typeof g; // "function"

《關於js引擎對var與function預解析 》

《如何理解表示式中的具名函式》

《函式宣告與函式表示式》 

《命名函式表示式探秘》

《具名函式表示式》

看完這些資料,做這道題應該就很簡單了吧?

在ie6、7、8下面,**等價於:

1 f = function() ;

2 g = function() ;

3 (function

() 6 f = function() 7if

(g())

10})();

11 alert(f());

在ff下的**等價於:

1 f = function() ;

2 g = function() ;

3 (function

() 7

})();

8 alert(f());

在chrome下等價於:

1 f = function() ;

2 g = function() ;

3 (function

() 8

if(g()) 12}

13})();

14 alert(f());

Js前端面試題

1.判斷js型別的方法 1 typof 2 可以判斷出 string boolean undefiend number 3 但是判斷typeof null 時值為object 判斷物件陣列的時候也是object object.prototype.tostring.call 可以判斷出所有型別 arr...

前端面試題 Js

1.原型 原型鏈 建構函式 例項 繼承 原型 proto 原型物件 prototype 用作建構函式中有prototype 原型物件 例項中有 proto 2.有幾種方式可以實現繼承 原型繼承,構造繼承,例項繼承,拷貝繼承,組合繼承,寄生組合繼承,class繼承 3.用原型實現繼承有什麼缺點,如何解...

array 前端面試題 JS陣列的前端面試題

關於陣列的前端面試題 如何判斷乙個變數是否為陣列?為什麼不用 typeof var list 1,2,3 typeof list object array 繼承與object 所以typeof 會直接返回 object 所以不可以用 typeof 方法來檢測 為什麼不用 instanceof?var...