面試題整理

2022-09-16 08:24:12 字數 1065 閱讀 3182

1.typeof

對於原始型別來說,除了null 都可以顯示正確的型別判斷;

對於物件來說,除了函式(顯示 function)都會顯示 object。

2.instanceof 判斷物件的型別--因為內部機制是通過原型鏈來判斷的。(對於原始型別來說,想直接通過instanceof來判斷型別是行不通的)

3.型別轉換--在js中型別轉換只有三種情況,

轉換為布林值

轉換為數字

轉換為字串

轉boolean -- 在條件判斷時,除了undefined,null,false,nan,'',0,-0,其他所有值都是true,包括所有物件。

物件轉原始型別 -- 物件在轉換型別的時候,會呼叫內建的 [[toprimitive]] 函式,對於該函式來說,演算法邏輯如下

·如果已經是原始型別了,那就不需要轉換了,

·呼叫 x.valueof() ,如果轉換為基礎型別,就返回轉換的值;

·呼叫 x.tostring() ,如果轉換為基礎型別,就返回轉換的值;

·如果都沒有返回原始型別,就會報錯。

在重寫 symbol.toprimitive, 該方法在轉原始型別時呼叫優先順序最高。

四則運算符:

1.運算中其中一方為字串,那麼就會把另一方也轉換為字串。

2.如果一方不是字串或者數字,那麼會將它轉換為數字或字串。

3.另外對於表示式: 'a' + + 'b' // -> "anan"

因為 + 'b' 等於 nan, 所以結果是 "anan",

4.對於除了加法的運算子來說,只要其中一方是數字,那麼另一方就會被轉換為數字

4 * '3' // 12

4 * // 0

4 * [1,2] // nan

比較運算子

1.如果是物件,就通過 toprimitive 轉換物件

2.如果是字串,就通過 unicode 字元索引來比較

let a = ,

tostring()

}a > -1 // true

在以上**中,因為a是物件,所以會通過 valueof 轉換為原始型別在比較值。

面試題整理

2014.3.19日整理 1.建立一張表hack 裡面就乙個欄位num,然後用sql語句從1開始插入到100,怎麼寫?oracle 答 1.create tablehack num number 建表語句 2.begin for i in1.100loop insert intohack num v...

整理面試題

整理面試題 1 說說activity,intent,service是什麼關係 答 乙個activity 通常是乙個單獨的螢幕,每乙個 activity 都被實現為乙個單獨的類,這些類都是從 activity 基類中繼承而來的。activity 類會顯示由檢視控制項組成的使用者介面,並對檢視控制項的事...

面試題整理

static變數 全域性變數與區域性變數 靜態資料區 堆疊 heap和stack的區別 堆是由malloc之類的函式分配的空間位址由低向高增長 stack是自動分配變數位址由高向低 減少程式的記憶體分配 1.棧區 stack 由編譯器自動分配釋放,存放函式的引數值,區域性變數的值等。其操作方式類似於...