今日面試題匯總2019-03-29

Q: CSS 有哪些樣式可以給子元素繼承!

  • 可繼承的:font-size,font-weight,line-height,color,cursor等
  • 不可繼承的一般是會改變盒子模型的:display,margin、border橄教、padding清寇、height等

更加全面的可以到引擎找

Q: CSS 中transition和animate有何區(qū)別? animate 如何停留在最后一幀!

  • transition一般用來做過渡的, 沒時間軸的概念, 通過事件觸發(fā)(一次),沒中間狀態(tài)(只有開始和結(jié)束)
  • 而animate則是做動效,有時間軸的概念(幀可控),可以重復(fù)觸發(fā)和有中間狀態(tài);
  • 過渡的開銷比動效小,前者一般用于交互居多,后者用于活動頁居多;
  • 至于如何讓animate停留在最后一幀也好辦,就它自身參數(shù)的一個值就可以了
animation-fill-mode: forwards;  
<!--backwards則停留在首幀,both是輪流-->

Q: 求[1, 10, 11, -1,'-5',12, 13, 14, 15, 2, 3, 4, 7, 8, 9]內(nèi)最大值與最小值之差

// 來一個很粗糙的版本,只當(dāng)傳入是數(shù)組且可以隱性轉(zhuǎn)為數(shù)字的
function MaxMinPlus(arr) {
  // 返回最大值與最小值之差
  return Array.isArray(arr) ? Math.max.apply(Math, arr) - Math.min.apply(Math, arr) : console.log('傳入的不是數(shù)組亦或者未能解決的錯誤')
}

// 結(jié)果是 20

// 若是要完善的話,要考慮傳入的是非數(shù)組,
//傳入字符串的時候要判斷,然后切割為數(shù)組..
// 都要考慮進去代碼量不短

Q: 請給Array實現(xiàn)一個方法,去重后返回重復(fù)的字符(新數(shù)組)‘’

 var testArr = [1,6,8,3,7,9,2,7,2,4,4,3,3,1,5,3];
    
  Array.prototype.extraChar = function(){
      var cacheExtraChar = []; // 緩存重復(fù)出現(xiàn)的字符
      var that = this; // 緩存 this;
      this.map(function(item,index){
          // 怎么理解這段代碼呢?
          // 就是向前往后查找一遍和從后往前查找一遍,不等就是沒有重復(fù)
          // 為什么還要判斷一遍緩存,是過濾緩存數(shù)組內(nèi)多次寫入
          (that.indexOf(item) !== that.lastIndexOf(item)) && cacheExtraChar.indexOf(item) === -1 ? cacheExtraChar.push(item) : -1;
      });
      return cacheExtraChar;
  }


testArr.extraChar(); // [1, 3, 7, 2, 4]

// 若是還需要排序就再排序下

[1,6,8,3,7,9,2,7,2,4,4,3,3,1,5,3]
.extraChar()
.sort(function(a,b){return a-b}) // [1, 2, 3, 4, 7]

Q: 談?wù)勀銓?TCP 的理解;

文章連接

Q: HTTP 和 HTTPS 有何差異? 聽說過 SPDY 么?

我只是粗淺的回答了下...

HTTP相對于 HTTPS來說,速度較快且開銷較小(沒有 SSL/TSL) 對接,默認是80端口;

HTTP容易遭受域名劫持,而HTTPS相對來說就較為安全但開銷較大(數(shù)據(jù)以加密的形式傳遞),默認端口為443..

HTTP是明文跑在 TCP 上.而HTTPS跑在SSL/TLS應(yīng)用層之下,TCP上的

Q: 那么 HTTPS中的TLS/SSL是如何保護數(shù)據(jù)的...

一般有兩種形式,非對稱加密,生成公鑰和私鑰,私鑰丟服務(wù)器,公鑰每次請求去比對驗證;

更嚴謹?shù)牟捎?CA(Certificate Authority),給密鑰簽名....

Q: 你說到對稱加密和非對稱加密,能說說整個流程如何運轉(zhuǎn)的么(HTTPS)

  • 對稱加密:
    • 雙方都有同樣的密鑰,每次通訊都要生成一個唯一密鑰,速度很快
    • 安全性較低且密鑰增長的數(shù)量極快
  • 非對稱加密(一般用 RSA)
    • 安全性很高,對資源消耗很大(CPU),目前主流的加密算法(基本用于交換密鑰或簽名,而非所有通訊內(nèi)容)
  • CA(數(shù)字簽名):
    • 這個是為了防止中間人給偷換了造成數(shù)據(jù)被竊取而誕生的
    • 用一些權(quán)威機構(gòu)頒布的算法來簽名,權(quán)威機構(gòu)做中間人,通訊過程都會跟機構(gòu)核對一遍

懂得真心不多,回來找了下相關(guān)資料,有興趣可以點擊看看;

Q: SPDY 聽說過么.什么來的?

谷歌推行一種協(xié)議(HTTP 之下SSL之上[TCP]),可以算是HTTP2的前身,有這么些優(yōu)點

  • 壓縮數(shù)據(jù)(HEADER)
  • 多路復(fù)用
  • 優(yōu)先級(可以給請求設(shè)置優(yōu)先級)

而這些優(yōu)點基本 HTTP2也繼承下來了..

Q: 你對 HTTP 的狀態(tài)嗎了解多少...

這里列舉一丟丟常見的..

  • 1XX: 一般用來判斷協(xié)議更換或者確認服務(wù)端收到請求這些
    • 100: 服務(wù)端收到部分請求,若是沒有拒絕的情況下可以繼續(xù)傳遞后續(xù)內(nèi)容
    • 101: 客戶端請求變換協(xié)議,服務(wù)端收到確認
  • 2xx: 請求成功,是否創(chuàng)建鏈接,請求是否接受,是否有內(nèi)容這些
    • 200: (成功)服務(wù)器已成功處理了請求喘漏。
    • 201: (已創(chuàng)建)請求成功并且服務(wù)器創(chuàng)建了新的資源。
    • 202: (已接受)服務(wù)器已接受請求华烟,但尚未處理翩迈。
    • 204: (無內(nèi)容)服務(wù)器成功處理了請求,但沒有返回任何內(nèi)容盔夜。
  • 3XX: 一般用來判斷重定向和緩存
    • 301: 所有請求已經(jīng)轉(zhuǎn)移到新的 url(永久重定向),會被緩存
    • 302: 臨時重定向,不會被緩存
    • 304: 本地資源暫未改動,優(yōu)先使用本地的(根據(jù)If-Modified-Since or If-Match去比對服務(wù)器的資源,緩存)
  • 4XX: 一般用來確認授權(quán)信息,請求是否出錯,頁面是否丟失
    • 400: 請求出錯
    • 401: 未授權(quán),不能讀取某些資源
    • 403: 阻止訪問,一般也是權(quán)限問題
    • 404: 頁面丟失,資源沒找到
    • 408: 請求超時
    • 415: 媒介類型不被支持负饲,服務(wù)器不會接受請求。
  • 5XX: 基本都是服務(wù)端的錯誤
    • 500: 服務(wù)端錯誤
    • 502: 網(wǎng)關(guān)錯誤
    • 504: 網(wǎng)關(guān)超時

Q: HTTP的請求報文是怎么樣的,能大體的說下么?

HTTP 的請求報文 = 請求行 + 請求頭 + 請求體;

  • 請求行: 這個好理解就是訪問的方法+ 協(xié)議+ 訪問的 URL 構(gòu)成
  • 請求頭: 這個也好理解,比如 accept,content-type,user-agent這類值鍵對,服務(wù)端可以直接讀取的
  • 請求體: 比如 POST 提交的一個表單,我們編碼后放在上面需要傳遞的

想深入了解的具體引擎搜索

Q: 請求報文知道,那你說說cookie是如何跟隨請求的?

Cookie 就是保存在 HTTP 協(xié)議的請求或者應(yīng)答頭部(Cookie 是由服務(wù)端生成),這樣一路漂泊...

Q: Cookie 隔離是什么,如何做;

cookie 隔離就是降低 header 的數(shù)據(jù)包含,以達到加快訪問速度的目的

方案: 靜態(tài)資源丟 CDN或者非主域來加載

Q: 瀏覽器緩存和服務(wù)端的緩存控制你了解多少,說說看?

文章鏈接

Q:有字符串 var test='abc345efgabcab'; 請根據(jù)提示實現(xiàn)對應(yīng)要求

  • 去掉字符串中的 a,b,c 字符 ,形成結(jié)果'345efg';
test.replace(/[abc]/g,''); // "345efg"
  • 將字符串的數(shù)字用括號括起來, 形成結(jié)果: abc[3][4][5]efg....'
test.replace(/\d/g,'[$&]');  // "abc[3][4][5]efgabcab"

// 若是有分組則按照$1, $2, $3的形式進行引用喂链,而 $& 則表示的是整個正則表達式匹配的內(nèi)容返十。
  • 將字符串中的每個數(shù)字的值分別乘以2,輸出:'abc6810....'
var temp = test.split('').map(function(item){
  return /^\d$/.test(item) ? item * 2 : item;
}).join('');

// "abc6810efgabcab"

Q: Vue-Router的兩種模式主要依賴什么實現(xiàn)的

  • hash主要依賴location.hash來改動 URL,達到不刷新跳轉(zhuǎn)的效果.每次 hash 改變都會觸發(fā)hashchange事件(來響應(yīng)路由的變化,比如頁面的更換)
  • history主要利用了 HTML5的 historyAPI 來實現(xiàn),用pushState和replaceState來操作瀏覽歷史記錄棧

Q: MVVM 和 MVC 的差異? 聽說過 MVP?

這類的文章好多,三個開發(fā)模式的誕生都有前后,不是同時出現(xiàn)的.

傳送門:

Q: 你對基礎(chǔ)算法這塊掌握的如何....

來,這紙給你,寫個快排試試...

// 快排的大體思路是這樣的,
// 找個中位值,從原數(shù)組切割出來,
// 剩下的作為兩個數(shù)組,每次都去比較;
// 直到遞歸的結(jié)果出來, 平均復(fù)雜度O(nlog n)

function quickSort(arr) {
  //如果數(shù)組長度<=1,則直接返回
  if (arr.length <= 1) {
    return arr;
  }
  // 中間位(基準)取長度的一半向下取整
  var pivotIndex = Math.floor(arr.length / 2);
  //把中間位從原數(shù)組切割出來, splice 會改變原數(shù)組!!!!
  var pivot = arr.splice(pivotIndex, 1)[0];
  //定義兩個空數(shù)組來存放比對后的值
  var left = [];
  var right = [];

  //比基準小的放在left椭微,比基準大的放在right
  for (var i = 0 , j = arr.length; i < j; i++) {
    if (arr[i] <= pivot) {
      left.push(arr[i]);
    } else {
      right.push(arr[i]);
    }
  }
  //遞歸下去  arr = [ left , pivot , right]
  // 怎么個遞歸法,就是比對后的數(shù)組還是會重復(fù)之前的取基準再切開比較..直到最后沒有可以切了
  return quickSort(left).concat([pivot], quickSort(right));
}

Q: 思維拓展題: 你有兩個玻璃球,有個100米的高樓,求玻璃球在哪個樓層扔下會碎(用的次數(shù)最少);

問題的要點: 玻璃球碎(有限個數(shù)) ,確定樓層數(shù) , 最少次數(shù) => 就是求最優(yōu)的公式

在這道題上給秀的一臉,我的第一次的思路

先折半,就變成[1-50][51-100], 那就是 1+50 = 51次 ...

面試大佬說,你用了快排的思路就肯定不是最優(yōu)的..

憋了許久,想到開平方

, 這樣的話,最多只要20次

然后又說給我三個球,在1000米的高樓,判斷多少次...但是根據(jù)我上面的話,

開立方,

, 那最多不超過30次;

至于第一次丟球的位置如何確定, 就是開平之后的值作為一個區(qū)間.

若 N 個球和 M 米的大廈...第一次丟球的高度區(qū)間就是這個了

面試大佬說這個還可以...那就暫且告一段落

...回來用萬能的搜索引擎找了下..最優(yōu)方案+最少次數(shù)需要考慮的東西很多,沒那么簡單

傳送門: 知乎有人討論了這個問題;

但是高數(shù)還老師了..這種帖子看的一臉懵逼....抽空再好好研究下

Q: webpack 是什么?webpack 常見的優(yōu)化手段有哪些;

webpack 是一個資源處理工具,它的出現(xiàn)節(jié)省了我們的人力和時間;可以對資源打包,解析,區(qū)分開發(fā)模式等等...

常見的優(yōu)化手段:

  • 分離第三方庫(依賴),比如引入dll
  • 引入多進程編譯,比如happypack
  • 提取公共的依賴模塊,比如commonChunkPlugin
  • 資源混淆和壓縮:比如UglifyJS
  • 分離樣式這些,減小bundle chunk的大小,比如ExtractTextPlugin
  • GZIP 壓縮,在打包的時候?qū)Y源對齊壓縮,只要部署的服務(wù)器能解析即可..減少請求的大小
  • 還有按需加載這些,一般主流的框架都有對應(yīng)的模塊懶加載方式.
  • 至于tree shaking目前webpack3/4已經(jīng)默認集成
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末洞坑,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子赏表,更是在濱河造成了極大的恐慌检诗,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瓢剿,死亡現(xiàn)場離奇詭異逢慌,居然都是意外死亡,警方通過查閱死者的電腦和手機间狂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門攻泼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人鉴象,你說我怎么就攤上這事忙菠。” “怎么了纺弊?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵牛欢,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么欢嘿? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任鲁冯,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好访得,可當(dāng)我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著陕凹,像睡著了一般悍抑。 火紅的嫁衣襯著肌膚如雪鳄炉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天传趾,我揣著相機與錄音迎膜,去河邊找鬼。 笑死浆兰,一個胖子當(dāng)著我的面吹牛磕仅,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播簸呈,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼榕订,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蜕便?” 一聲冷哼從身側(cè)響起劫恒,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎轿腺,沒想到半個月后两嘴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡族壳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年憔辫,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片仿荆。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡贰您,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出拢操,到底是詐尸還是另有隱情锦亦,我是刑警寧澤,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布令境,位于F島的核電站杠园,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏舔庶。R本人自食惡果不足惜返劲,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望栖茉。 院中可真熱鬧,春花似錦孵延、人聲如沸吕漂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽惶凝。三九已至吼虎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間苍鲜,已是汗流浹背思灰。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留混滔,地道東北人洒疚。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像坯屿,于是被迫代替她去往敵國和親油湖。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,960評論 2 355