前端領域高頻筆試面試】—— JavaScript高級相關(前端高頻面試題)

      網友投稿 825 2022-05-30

      目錄

      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.如何消除一個數組里面重復的元素?

      5.評價以下代碼并給出改進意見

      不應該在if和else語句中聲明addListener函數,應該先聲明;不需要使用window.addEventListener或document.all來進行檢測瀏覽器,應該使用能力檢測;由于attachEvent在IE中有this指向問題,所以調用它時需要處理一下。

      改進如下:

      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人片在线播放| 亚洲无线码一区二区三区|