2017.08.16百度一面

前言

才面完蘑菇街就收到了百度的短信,沒辦法,面吧

面試題

1.自我介紹

這次真是超級(jí)后悔提Angular

2.為什么要用依賴注入,它的好處是什么?

它是一種設(shè)計(jì)模式,可以讓類從外部源中獲得它的依賴,而不必親自創(chuàng)建它們。最大的好處是讓使用者和被使用者解耦,從而反轉(zhuǎn)依賴。

3.有沒有用過Angular的工廠?

沒有,ag2 以后的factory和 ag1 的有比較大的區(qū)別,ag2 弱化了 factory 模式,不過了解一點(diǎn)工廠模式:定義一個(gè)創(chuàng)建對(duì)象的接口,但讓實(shí)現(xiàn)這個(gè)接口的類來決定實(shí)例化哪個(gè)類。工廠方法讓類的實(shí)例化推遲到子類中進(jìn)行。不過當(dāng)工廠需要實(shí)例化的類越來越多時(shí),工廠類將變成由相互依賴的工廠方法構(gòu)成的巨型蜘蛛網(wǎng)。

4.ES6的模塊化是什么?import進(jìn)來直接用和Angular的依賴注入進(jìn)來用有什么區(qū)別?

import和export導(dǎo)入導(dǎo)出模塊,一個(gè)文件就是一個(gè)模塊,最主要的區(qū)別是依賴前置和依賴反轉(zhuǎn)。

5.數(shù)據(jù)類型有哪幾種?引用和基本數(shù)據(jù)類型的區(qū)別?

7種,number、string、boolean、null、undefined、object、Symbol。
基本放堆里,引用放棧里,引用數(shù)據(jù)類型會(huì)有修改一個(gè)變量,導(dǎo)致和它相同引用的變量也被修改的情況。

6.談?wù)勗玩?,Object.prototype的原型是什么?

原型鏈?zhǔn)荍S這門基于原型編程范式的基礎(chǔ),它把所有對(duì)象都看做是Object的派生,每個(gè)對(duì)象都有原型對(duì)象,使用prototype和__proto__來標(biāo)識(shí),當(dāng)然Object.getOwnProperty()也可以獲取原型,當(dāng)我們需要一個(gè)對(duì)象的屬性時(shí),它會(huì)沿著原型鏈一級(jí)一級(jí)向上找。
null

7.對(duì)象淺拷貝怎么做?使用JSON.parse(JSON.stringify(...))的方法有什么壞處?

Object.assign()或者先轉(zhuǎn)JSON再轉(zhuǎn)回對(duì)象,對(duì)象只有屬性被拷貝過來。

8.談?wù)勯]包,解釋一下閉包中變量在內(nèi)存中的形態(tài)?閉包的實(shí)際應(yīng)用場景有哪些?

閉包是指這樣的作用域,它包含有一個(gè)函數(shù),這個(gè)函數(shù)可以調(diào)用被這個(gè)作用域所封閉的變量、函數(shù)或者閉包等內(nèi)容。通常我們通過閉包所對(duì)應(yīng)的函數(shù)來獲得對(duì)閉包的訪問。
閉包里的變量在內(nèi)存中是不會(huì)被清除的,如果循環(huán)引用會(huì)引起內(nèi)存泄露。
當(dāng)函數(shù)可以記住并訪問所在的詞法作用域時(shí),就產(chǎn)生了閉包,即使函數(shù)是在當(dāng)前詞法作用域之外執(zhí)行。
詞法作用域的查找規(guī)則只是閉包的一部分。
IIFE是封閉的閉包。
應(yīng)用場景:創(chuàng)建一個(gè)模塊(保護(hù)變量),必須有外部的封閉函數(shù),然后至少被調(diào)用一次。封閉函數(shù)必須返回至少一個(gè)內(nèi)部函數(shù),這樣內(nèi)部函數(shù)才能在私有作用域中形成閉包。

9.你為什么選擇學(xué)node?它和多線程語言相比有什么缺點(diǎn)和優(yōu)點(diǎn)?node有可能會(huì)出現(xiàn)java中的死鎖嗎?

前后端同構(gòu),成本小。異步執(zhí)行,非阻塞式,事件驅(qū)動(dòng),某些方面速度和效率沒有java、go之類的語言高。node不會(huì)出現(xiàn)鎖,因?yàn)楦静辉试S使用鎖。

10.談?wù)凧S中的對(duì)象和類,class在JS中的實(shí)現(xiàn)是什么樣的?

詳情請(qǐng)看另一篇文章Javascript的面向?qū)ο?/a>

11.typeof Funcion答案是什么?

"function"

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

  • *面試心聲:其實(shí)這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,603評(píng)論 30 472
  • 在線閱讀 http://interview.poetries.top[http://interview.poetr...
    前端進(jìn)階之旅閱讀 115,532評(píng)論 24 450
  • 1,javascript 基礎(chǔ)知識(shí) Array對(duì)象 Array對(duì)象屬性 Arrray對(duì)象方法 Date對(duì)象 Dat...
    Yuann閱讀 1,148評(píng)論 0 1
  • 繼承 一、混入式繼承 二、原型繼承 利用原型中的成員可以被和其相關(guān)的對(duì)象共享這一特性,可以實(shí)現(xiàn)繼承,這種實(shí)現(xiàn)繼承的...
    magic_pill閱讀 1,126評(píng)論 0 3
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,638評(píng)論 18 399

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