【前端領域高頻筆試面試】—— JavaScript高級相關(前端高頻面試題)
目錄
1.JQuery一個對象可以同時綁定多個事件,這是如何實現的?
2.什么是webkit, 怎么用瀏覽器的各種工具來調試代碼
3.前端templating(Mustache, underscore, handlebars)是干嘛的, 怎么用?
4.如何消除一個數組里面重復的元素?
5.評價以下代碼并給出改進意見
6.如何實現一個對頁面某個節點的拖拽?
7.eval是做什么的?
8.關于事件,IE與火狐的事件機制有什么區別? 如何阻止冒泡?
9.什么是閉包(closure),為什么要用它?
10.javascript 代碼中的"use strict";是什么意思 ?
11.new操作符具體干些了什么?
12.對JSON的了解
13.js延遲加載的方式有哪些?
14.模塊化開發怎么做?
15.requireJS的核心原理是什么?
16.call() 和 .apply() 的含義和區別
17.對象有哪些原生方法,列舉一下
18.JS怎么實現一個類,怎么實例化這個類
19.javascript對象的幾種創建方式
20.javascript繼承的 6 種方法
21.new操作符具體干些了什么?
22.對JSON的了解
23.js延遲加載的方式有哪些?
24.模塊化開發怎么做?
25.requireJS的核心原理是什么?
26.call() 和 .apply() 的含義和區別
27.對象有哪些原生方法,列舉一下
28.JS怎么實現一個類,怎么實例化這個類
29.javascript對象的幾種創建方式
30.javascript繼承的 6 種方法
31.JavaScript 原型對象,原型鏈有什么特點
32.簡述一下JS中的閉包
33.說說你對this的理解
34.如何阻止事件冒泡和默認事件?
35.用過require.js嗎?它有什么特性?
36.談談瀏覽器的內核
37.Jquery與jQuery UI 有啥區別?
38.前端開發的優化問題
1.JQuery一個對象可以同時綁定多個事件,這是如何實現的?
jQuery可以給一個對象同時綁定多個事件,低層實現方式是使用addEventListner或attachEvent兼容不同的瀏覽器實現事件的綁定,這樣可以給同一個對象注冊多個事件。
2.什么是webkit, 怎么用瀏覽器的各種工具來調試代碼
Webkit是瀏覽器引擎,包括html渲染和js解析功能,手機瀏覽器的主流內核,與之相對應的引擎有Gecko(Mozilla Firefox 等使用)和Trident(也稱MSHTML,IE 使用)。
對于瀏覽器的調試工具要熟練使用,主要是頁面結構分析,后臺請求信息查看,js調試工具使用,熟練使用這些工具可以快速提高解決問題的效率。
3.前端templating(Mustache, underscore, handlebars)是干嘛的, 怎么用?
Web模板引擎是為了使用戶界面與業務數據(內容)分離而產生的;
Mustache 是一個 logic-less (輕邏輯)模板解析引擎,它的優勢在于可以應用在 Javascript、PHP、Python、Perl 等多種編程語言中。
Underscore封裝了常用的JavaScript對象操作方法,用于提高開發效率。
Handlebars 是 JavaScript 一個語義模板庫,通過對view和data的分離來快速構建Web模板。
4.如何消除一個數組里面重復的元素?
var arr = [1, 2, 3, 3, 4, 4, 5, 5, 6, 1, 9, 3, 25, 4];
function deRepeat() {
var newArr = [];
var obj = {};
var index = 0;
var l = arr.length;
for (var i = 0; i < l; i++) {
if (obj[arr[i]] == undefined) {
obj[arr[i]] = 1;
newArr[index++] = arr[i];
} else if (obj[arr[i]] == 1)
continue;
}
return newArr;
}
var newArr2 = deRepeat(arr);
alert(newArr2); //輸出1,2,3,4,5,6,9,25
5.評價以下代碼并給出改進意見
if (window.addEventListener) {
var addListener = function (el, type, listener, useCapture) {
el.addEventListener(type, listener, useCapture);
};
} else if (document.all) {
addListener = function (el, type, listener) {
el.attachEvent("on" + type, function () {
listener.apply(el);
});
}
}
不應該在if和else語句中聲明addListener函數,應該先聲明;不需要使用window.addEventListener或document.all來進行檢測瀏覽器,應該使用能力檢測;由于attachEvent在IE中有this指向問題,所以調用它時需要處理一下。
改進如下:
function addEvent(elem, type, handler) {
if (elem.addEventListener) {
elem.addEventListener(type, handler, false);
} else if (elem.attachEvent) {
elem['temp' + type + handler] = handler;
elem[type + handler] = function () {
elem['temp' + type + handler].apply(elem);
};
elem.attachEvent('on' + type, elem[type + handler]);
} else {
elem['on' + type] = handler;
}
}
6.如何實現一個對頁面某個節點的拖拽?
(1)給需要拖拽的節點綁定mousedown, mousemove, mouseup事件;
(2)mousedown事件觸發后,開始拖拽;
(3)mousemove時,需要通過event.clientX和clientY獲取拖拽位置,并實時更新位置;
(4)mouseup時,拖拽結束;
(5)需要注意瀏覽器邊界的情況,
7.eval是做什么的?
它的功能是把對應的字符串解析成 JS 代碼并運行;應該避免使用 eval,不安全,非常耗性能(2個步驟,一次解析成js語句,一次執行)。
8.關于事件,IE與火狐的事件機制有什么區別? 如何阻止冒泡?
(1)在IE中,事件對象是作為一個全局變量來保存和維護的.所有的瀏覽器事件,不管是用戶觸發的,還是其他事件,都會更新window.event對象.所以在代碼中,只要調用window.event就可以獲取事件對象, 再event.srcElement就可以取得觸發事件的元素進行進一步處理;
(2)在FireFox中,事件對象卻不是全局對象,一般情況下,是現場發生,現場使用,FireFox把事件對象自動傳給事件處理程序.
關于事件的兼容性處理要熟練掌握,事件對象具體哪些屬性存在兼容性問題,IE與標準事件模型事件冒泡與事件捕獲的支持要理解。
9.什么是閉包(closure),為什么要用它?
簡單的理解是函數的嵌套形成閉包,閉包包括函數本身已經它的外部作用域;使用閉包可以形成獨立的空間,延長變量的生命周期,報存中間狀態值。
10.javascript 代碼中的"use strict";是什么意思 ?
意思是使用嚴格模式,使用嚴格模式后一些不規范的語法將不再支持。
11.new操作符具體干些了什么?
(1)創建一個空對象,并且 this 變量引用該對象,同時還繼承了該函數的原型;
(2)屬性和方法被加入到 this 引用的對象中;
(3)新創建的對象由 this 所引用,并且最后隱式的返回 this 。
12.對JSON的了解
輕量級數據交互格式,可以形成復雜的嵌套格式,解析非常方便。
13.js延遲加載的方式有哪些?
方案一: 亚洲午夜无码久久久久| 亚洲国产成人久久一区久久| 国产成人A亚洲精V品无码 | 亚洲一区二区三区丝袜| 亚洲精品永久www忘忧草| 亚洲综合精品一二三区在线| 久久亚洲国产伦理| 亚洲va久久久噜噜噜久久天堂| 亚洲最大AV网站在线观看| 国产亚洲精品看片在线观看| 亚洲国产主播精品极品网红| 亚洲A丁香五香天堂网| 亚洲成A人片在线观看中文| 亚洲国产成人五月综合网 | 亚洲黄片手机免费观看| 亚洲国产成人久久综合区| 国产精品亚洲不卡一区二区三区| 亚洲乱码国产一区网址| 亚洲国产欧洲综合997久久| 精品亚洲国产成人av| 亚洲国产精品激情在线观看| 亚洲午夜成人精品电影在线观看| 亚洲欧洲中文日韩av乱码| 亚洲色精品aⅴ一区区三区| 久久精品国产亚洲沈樵| 亚洲人成电影在线天堂| 亚洲天堂中文字幕| 亚洲最大黄色网址| 亚洲AV无码乱码在线观看代蜜桃| 国产亚洲精品VA片在线播放| 亚洲国产精品无码观看久久| 国产精品观看在线亚洲人成网| 亚洲精品第一国产综合精品99| 中文字幕精品亚洲无线码二区| 国产亚洲综合色就色| 精品亚洲成AV人在线观看| 亚洲电影免费观看| 亚洲中文字幕久久精品无码A| 亚洲乱妇熟女爽到高潮的片| 亚洲成a人片在线播放| 亚洲无线码一区二区三区|