前端面試基礎問題(一)
2022-01-31由 三流程式設計師 發表于 歷史
1、typeof只能區分值型別,對引用型別無能為力,只能區分函式function
NaN表示特殊的非數字值,null是空指標,並沒有指向任何一個地址
typeof能區分的五種基本型別:string、boolean、number、undefined、symbol和函式function;
2、變數計算
100 == ‘100’ //true
0 == “” //true
null == undefined //true
3、判斷資料型別
instanceof
instanceof:用於判斷引用型別屬於哪個建構函式的方法
f instanceof Foo的判斷邏輯是:
f的__proto__一層一層往上,能否對應到Foo。prototype
再試著判斷f instance Object
如何準確判斷一個變數是否是陣列型別
var arr = [] arr instanceOf Array //true typeof arr //object,typeof是無法判斷是否是陣列的
通用判斷方法:Object。prototype。toString。call(arr) === “[object Array]”;
4、原型規則
原型規則
所有的引用型別(陣列、函式、物件)都具有物件特性,即可自由擴充套件屬性】
所有的引用型別(陣列、物件、函式)有一個__proto__ 屬性,屬性值是一個普通的物件
所有的函式都有一個prototype屬性,屬性值也是一個普通的物件
所有的引用型別(陣列、物件、函式),__proto__屬性指向它的建構函式的prototype屬性
當試圖得到一個物件的某個屬性時,如果這個物件本身沒有這個屬性,那麼回去他的__proto__(即它的建構函式的prototype中尋找);
5、變數提升