前端JavaScript面試技巧

導讀

請搭配導圖一起看

這里寫圖片描述

舉例面試題:

這里寫圖片描述
這里寫圖片描述
這里寫圖片描述

變量類型和變量計算

幾種基本數(shù)據(jù)類型?復雜數(shù)據(jù)類型?值類型和引用數(shù)據(jù)類型?堆棧數(shù)據(jù)結(jié)構(gòu)?

基本數(shù)據(jù)類型:Undefined、Null、Boolean、Number、String
值類型:數(shù)值、布爾值、null、undefined。
引用類型:對象、數(shù)組、函數(shù)。
堆棧數(shù)據(jù)結(jié)構(gòu):是一種支持后進先出(LIFO)的集合,即后被插入的數(shù)據(jù),先被取出!
js數(shù)組中提供了以下幾個方法可以讓我們很方便實現(xiàn)堆棧:
shift:從數(shù)組中把第一個元素刪除,并返回這個元素的值。
unshift: 在數(shù)組的開頭添加一個或更多元素,并返回新的長度
push:在數(shù)組的中末尾添加元素,并返回新的長度
pop:從數(shù)組中把最后一個元素刪除,并返回這個元素的值。

這里寫圖片描述
這里寫圖片描述

JS內(nèi)置函數(shù)

  • 內(nèi)置函數(shù)Object,Array,Boolean,Number,String,Function,Date,RegExp,Error
  • 內(nèi)置對象Math,JSON…..
這里寫圖片描述
這里寫圖片描述
這里寫圖片描述

值類型和引用類型

  • 值類型:數(shù)值、布爾值、null、undefined。
  • 引用類型:對象、數(shù)組、函數(shù)。
這里寫圖片描述

What the fuck is JSON?

對象是一個無序的“‘名稱/值’對”集合。一個對象以“{”(左括號)開始,“}”(右括號)結(jié)束。每個“名稱”后跟一個“:”(冒號);“‘名稱/值’ 對”之間使用“,”(逗號)分隔。
https://zh.wikipedia.org/wiki/JSON
http://www.json.org/json-zh.html

這里寫圖片描述

原型和原型鏈-構(gòu)造函數(shù)問題

這里寫圖片描述

instanceof的妙用

object instanceof constructor
instanceof 運算符用來檢測 constructor.prototype 是否存在于參數(shù) object 的原型鏈上。

這里寫圖片描述

typeof無法判斷數(shù)組

這里寫圖片描述

new對象過程

這里寫圖片描述
這里寫圖片描述

原型鏈繼承

這里寫圖片描述
這里寫圖片描述

原型規(guī)則(隱式原型和顯式原型)

這里寫圖片描述
這里寫圖片描述
這里寫圖片描述

原型鏈繼承例子

這里寫圖片描述

zepto原型鏈

這里寫圖片描述

鏈式操作

這里寫圖片描述

作用域和閉包-執(zhí)行上下文

這里寫圖片描述

變量(自由變量)

這里寫圖片描述

this

這里寫圖片描述

作用域

這里寫圖片描述

確定點擊按鈕的作用域

這里寫圖片描述

立即函數(shù)

( function(){…} )()和( function (){…} () )是兩種javascript立即執(zhí)行函數(shù)的常見寫法
模仿一個私有作用域,用匿名函數(shù)作為一個“容器”,“容器”內(nèi)部可以訪問外部的變量,而外部環(huán)境不能訪問“容器”內(nèi)部的變量,所以( function(){…} )()內(nèi)部定義的變量不會和外部的變量發(fā)生沖突,俗稱“匿名包裹器”或“命名空間”。
函數(shù)聲明和函數(shù)表達式不同之處在于,一、Javascript引擎在解析javascript代碼時會‘函數(shù)聲明提升’(Function declaration Hoisting)當前執(zhí)行環(huán)境(作用域)上的函數(shù)聲明,而函數(shù)表達式必須等到Javascirtp引擎執(zhí)行到它所在行時,才會從上而下一行一行地解析函數(shù)表達式,二、函數(shù)表達式后面可以加括號立即調(diào)用該函數(shù),函數(shù)聲明不可以,只能以fnName()形式調(diào)用 。
匿名函數(shù)屬于函數(shù)表達式
JQuery使用的就是這種方法,將JQuery代碼包裹在( function (window,undefined){…jquery代碼…} (window)中,在全局作用域中調(diào)用JQuery代碼時,可以達到保護JQuery內(nèi)部變量的作用。
http://www.jb51.net/article/50967.htm

這里寫圖片描述

閉包

這里寫圖片描述
這里寫圖片描述

異步和單線程

這里寫圖片描述

同步和異步

這里寫圖片描述

異步場景

這里寫圖片描述
這里寫圖片描述
這里寫圖片描述

setTimeout過程

這里寫圖片描述
這里寫圖片描述

JS-Web-API

這里寫圖片描述

獲取時間

這里寫圖片描述
這里寫圖片描述

數(shù)組API

這里寫圖片描述

遍歷數(shù)組和對象

使用if判斷數(shù)組(for,forEach)和對象(for in)


這里寫圖片描述

對象API

這里寫圖片描述
這里寫圖片描述

隨機數(shù)(長度一定)

這里寫圖片描述

Dom

這里寫圖片描述
  • Dom操作常用API

  • 獲取Dom節(jié)點getElementById

    • 獲取父元素 parentElement
    • 獲取子元素 childNodes
  • 新增節(jié)點appendChild

  • 創(chuàng)建元素createElement

  • 刪除節(jié)點 removeChild

這里寫圖片描述

JS中Attribute 和prototype 的區(qū)別是一個是標簽屬性 一個是對象屬性

這里寫圖片描述

網(wǎng)絡基礎

這里寫圖片描述
這里寫圖片描述

圖片懶加載

這里寫圖片描述
這里寫圖片描述
這里寫圖片描述
這里寫圖片描述

BOM

這里寫圖片描述
這里寫圖片描述
這里寫圖片描述
這里寫圖片描述
這里寫圖片描述

事件綁定

這里寫圖片描述

代理

事件委托就是利用事件冒泡,只指定一個事件處理程序,就可以管理某一類型的所有事件。


這里寫圖片描述

冒泡

這里寫圖片描述
這里寫圖片描述

ajax請求(包括http協(xié)議)

這里寫圖片描述
這里寫圖片描述
這里寫圖片描述

js模塊化

這里寫圖片描述

不使用模塊化

這里寫圖片描述
這里寫圖片描述

export和require

這里寫圖片描述

requires.js

這里寫圖片描述
引入
這里寫圖片描述
這里寫圖片描述

CommonJS

這里寫圖片描述

webpack

這里寫圖片描述
這里寫圖片描述
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 在線閱讀 http://interview.poetries.top[http://interview.poetr...
    前端進階之旅閱讀 115,532評論 24 450
  • 1.幾種基本數(shù)據(jù)類型?復雜數(shù)據(jù)類型?值類型和引用數(shù)據(jù)類型?堆棧數(shù)據(jù)結(jié)構(gòu)? 基本數(shù)據(jù)類型:Undefined、Nul...
    極樂君閱讀 5,876評論 0 106
  • 1.幾種基本數(shù)據(jù)類型?復雜數(shù)據(jù)類型?值類型和引用數(shù)據(jù)類型?堆棧數(shù)據(jù)結(jié)構(gòu)? 基本數(shù)據(jù)類型:Undefined、Nul...
    伯納烏的追風少年閱讀 26,122評論 2 46
  • 從夢中醒來,夢里的世界瞬間消失。如同一只黑夜里陰溝里的狡猾老鼠,聞見人聲就匆忙逃離,無法捉住,但它存在過。夢也是一...
    森木閱讀 575評論 0 2
  • 一 哇哇 的啼哭聲響遍整個房間,喜得孩兒的爸爸喜極而泣,媽媽也露出欣慰的笑容! 還沒一個月,那小孩的爸爸越來越...
    秦曦77閱讀 682評論 0 1

友情鏈接更多精彩內(nèi)容