昨天我們一起分享了關於html和css的面試題《前端面試題之Html和CSS》,今天我們來分享關於javascript有關的面試題。我面試的時候最害怕面試官問我js了,因為我真心不擅長這個。不過我在努力的學習中。
本寶寶第一次面試的時候比這個還緊張呢!!!
1.介紹js的基本資料型別
Undefined、Null、Boolean、Number、String
2.js有哪些內建物件?
資料封裝類物件:Object、Array、Boolean、Number 和 String
其他物件:Function、Arguments、Math、Date、RegExp、Error
3.this物件的理解
this總是指向函式的直接呼叫者(而非間接呼叫者);
如果有new關鍵字,this指向new出來的那個物件;
在事件中,this指向觸發這個事件的物件,特殊的是,IE中的attachEvent中的this總是指向全域性物件Window;
4.eval是做什麼的?
它的功能是把對應的字串解析成JS程式碼並執行;
應該避免使用eval,不安全,非常耗效能(2次,一次解析成js語句,一次執行)。
由JSON字串轉換為JSON物件的時候可以用eval,var obj =eval(‘(‘+ str +’)’);
5.DOM怎樣新增、移除、移動、複製、建立和查詢節點
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// 建立新節點 createDocumentFragment() //建立一個DOM片段 createElement() //建立一個具體的元素 createTextNode() //建立一個文字節點 // 新增、移除、替換、插入 appendChild() removeChild() replaceChild() insertBefore() //在已有的子節點前插入一個新的子節點 // 查詢 getElementsByTagName() //通過標籤名稱 getElementsByName() //通過元素的Name屬性的值(IE容錯能力較強,會得到一個陣列,其中包括id等於name值的) getElementById() //通過元素Id,唯一性 |
6.null和undefined的區別?
null是一個表示”無”的物件,轉為數值時為0;undefined是一個表示”無”的原始值,轉為數值時為NaN。
undefined:
(1)變數被宣告瞭,但沒有賦值時,就等於undefined。
(2) 呼叫函式時,應該提供的引數沒有提供,該引數等於undefined。
(3)物件沒有賦值的屬性,該屬性的值為undefined。
(4)函式沒有返回值時,預設返回undefined。
null:
(1) 作為函式的引數,表示該函式的引數不是物件。
(2) 作為物件原型鏈的終點。
7.new操作符具體幹了什麼呢?
(1)建立一個空物件,並且 this 變數引用該物件,同時還繼承了該函式的原型。
(2)屬性和方法被加入到 this 引用的物件中。
(3)新建立的物件由 this 所引用,並且最後隱式的返回 this 。
8.JSON 的瞭解?
JSON(JavaScript Object Notation) 是一種輕量級的資料交換格式。它是基於JavaScript的一個子集。資料格式簡單, 易於讀寫, 佔用頻寬小。
格式:採用鍵值對,例如:{‘age’:’12’, ‘name’:’back’}
9.call() 和 apply() 的區別和作用?
apply()函式有兩個引數:第一個引數是上下文,第二個引數是引數組成的陣列。如果上下文是null,則使用全域性物件代替。
如:function.apply(this,[1,2,3]);
call()的第一個引數是上下文,後續是例項傳入的引數序列。
如:function.call(this,1,2,3);
10.如何獲取UA?
1 2 3 4 5 6 |
function whatBrowser() { document.Browser.Name.value=navigator.appName; document.Browser.Version.value=navigator.appVersion; document.Browser.Code.value=navigator.appCodeName; document.Browser.Agent.value=navigator.userAgent; } |
明天更新一些面試比較雜亂的問題,還是老樣子,大家面試有遇到什麼新的問題留言給我一併記下來!讓我們更多小夥伴不害怕面試。變態的面試題就不要了,因為有些面試官真心變態他不會的都拿出來!