20前端春招面經(jīng)

春招的征程已經(jīng)結(jié)束了,落魄前端在線發(fā)面經(jīng),不得不說今年的形式有點嚴(yán)峻,很多公司都沒有前端崗,或者有的都是hc很少的,依稀記得一個上海國企只招兩個前端,真的是難受,越來越難了,不過博主今年運氣還是不錯的,目前已拿字節(jié)商業(yè)變現(xiàn)offer,在線求組織。

博主主要使用的是React技術(shù)棧,對Vue也可以熟練使用,也給目前還沒有offer的同學(xué)建議一下,這次春招準(zhǔn)備的比較充分,面試一定要準(zhǔn)備的很充分,多刷面經(jīng),JS基礎(chǔ)一定要扎實,閉包、原型鏈順手拈來,計算機網(wǎng)絡(luò)的知識、操作系統(tǒng)的知識經(jīng)常問的那些一定要搞明白至少達(dá)到可以很順暢的答上來,這些幾乎都是必問的。算法題就不說了,leetcode多刷一刷,TOP100的怎么著都得刷到中等難度,數(shù)據(jù)結(jié)構(gòu)的建議劍指,不過我倒是沒怎么刷過。

字節(jié)-北京-商業(yè)變現(xiàn)

字節(jié)的面試體驗還是一如既往的好,如果少問一下計網(wǎng)的知識那就更完美了,可能是運氣比較好,面試官比較忙,直接約了十天后面試,這十天我是翻遍了面經(jīng),倒是學(xué)到了不少東西,至少問我HTTPS握手過程和TCP三次握手四次揮手我是一點都不慌的。不過我倒是感覺問的JS基礎(chǔ)有點少了,框架也是沒怎么問,也是三面看我可憐給我加了幾道題,最后盡然通過了面試也是心驚膽戰(zhàn)。

一面(50min)

  1. 算法中時間復(fù)雜度和空間復(fù)雜度,分別對應(yīng)計算機什么硬件資源的使用?

  2. 計算機如何存儲小數(shù)?0.1+0.2 ?= 0.3

  3. HTTP vs HTTPS 的區(qū)別?HTTPS 加密連接建立的過程?

  4. Flexbox 彈性盒模型是什么?

  5. CSS 畫個扇形?畫個三角形?

  6. 深拷貝是什么?實現(xiàn) deepCopy 接收任意類型的值。

  7. console.log('script start');
    
    async function async1() {
        console.log('async1');
        await async2();
        console.log('end');
    }
    
    async function async2() {
        console.log('async2');
    }
    
    setTimeout(function() {
        console.log('setTimeout');
    }, 0);
    
    async1();
    
    new Promise(function(resolve) {
        console.log('promise1');
        resolve();
    }).then(function() {
        console.log('promise2');
    });
    
    console.log('script end');
    
  8. 實現(xiàn)一個簡易的Promise

  9. function TreeNode(val) {
        this.val = val;
        this.left = null;
        this.right = null;
    }
    
        1
       / \
      4   6
         / \
        2   5
    
    function lvl(root) {
         // 請你實現(xiàn)
    }
    
    [
        [1],
        [4, 6],
        [2, 5],
    ]
    

二面(45min)

  1. 一面的問題怎么樣

  2. 進(jìn)程線程之間的區(qū)別,進(jìn)程之間怎么通信,線程之間怎么通信

  3. 聊項目

  4. 兩個標(biāo)簽頁怎么通信

  5. localStorage sessionStorage的區(qū)別

  6. 實現(xiàn) requestAnimationFrame 的polyfill

  7. requestAnimationFrame 和 requestIdleCallback的區(qū)別

  8. 怎么保存登陸態(tài)

  9. 如何預(yù)防XSS,CSRF攻擊

  10. 一個promise list,一次最多只能執(zhí)行n個,當(dāng)全部執(zhí)行完成之后,調(diào)用callback

    send(list, n, callback)
    
  11. React Context 和 redux mobx的區(qū)別

  12. splice會不會改變原數(shù)組

  13. css 兩邊定寬,中間自適應(yīng)

  14. 頁面性能如何進(jìn)行優(yōu)化

三面(30min)

  1. 面向?qū)ο蟮奶卣?/li>
  2. 基于對象和面向?qū)ο蟮膮^(qū)別,以及JS是面向?qū)ο筮€是基于對象
  3. JS實現(xiàn)繼承,多種方式
  4. HTTP 和 WebSocket的區(qū)別
  5. TCP 和 UCP 的區(qū)別
  6. TCP的三次握手四次揮手
  7. React實現(xiàn)顯示當(dāng)前時間的公用組件,時間隨著當(dāng)前時間變化,并有哪些優(yōu)化方式
  8. useEffect的使用及優(yōu)化
  9. canvas如何實現(xiàn)按比例沾滿全屏
  10. JS實現(xiàn)數(shù)據(jù)結(jié)構(gòu)雙向循環(huán)列表,并實現(xiàn)添加節(jié)點方式
  11. 內(nèi)存溢出和內(nèi)存泄漏的區(qū)別
  12. 狄杰斯特拉和弗洛伊德的區(qū)別,描述及實現(xiàn) (因為畢設(shè)用到了這兩個算法)
  13. 貪吃蛇這個項目的數(shù)據(jù)構(gòu)造和整個游戲的建模過程(有一個實時對戰(zhàn)的貪吃蛇項目)
  14. webpack工程化可以有哪些優(yōu)化的方法

歡聚時代

歡聚時代的面試體驗不是很好,一面直接用的手機看不到我的簡歷,二面感覺有點看不起人的樣子,這家給我的感覺是比較側(cè)重于實戰(zhàn),考我的經(jīng)驗方面的比較多,最后估計是被HR刷了。

筆試題

  1. 實現(xiàn)一個remove方法,實現(xiàn)移除數(shù)組中等于item的值,不直接修改原數(shù)組,返回一個新的數(shù)組,例如remove([1, 2, 3, 4, 4 ,5], 4)
  2. 簡述箭頭函數(shù)和普通函數(shù)的區(qū)別
  3. js實現(xiàn)一個eventEmitter類,實現(xiàn)on(), off(), once(), emit()方法

一面(視頻面,5min。。。。)

面試官用的手機說看不到我的簡歷,5分鐘。。。人傻了

  • 簡單介紹自己的項目
  • nginx跨域怎么處理,服務(wù)端怎么處理跨域
  • React習(xí)慣使用class寫法還是函數(shù)式

復(fù)面(視頻面,45min)

  • React16 的新特性

  • React Hook 介紹怎么使用

  • useEffect 怎么實現(xiàn) componentWillUnMount 生命周期

  • useEffect 怎么優(yōu)化

  • useRef 怎么使用

  • 設(shè)計一個場景,分頁器,使用React16 函數(shù)式編程,你會怎么設(shè)計,怎么優(yōu)化

  • React Fiber 的理解

  • Webpack 優(yōu)化

  • Webpack 熱更新怎么做

  • Webpack Tree Shaking

  • 怎么配置Antd按需加載

  • 純Css模擬雨滴落下的場景,要保證不掉幀

  • 怎么去部署一個Nodejs項目,考察Linux相關(guān)命令

  • SSR渲染

  • 談一談 WebSocket, 和你在 Nodejs項目中是怎么使用的,結(jié)合你的項目(我有一個項目用到了Websocket)

CVTE

二面的面試體驗?zāi)墙幸粋€舒服,聽過CVTE的HR很是恐怖,可以只到了二面,還沒有經(jīng)歷HR,我倒是覺得我二面搭的挺好的。

初面(電話面,25min)

  • 自我介紹

  • 簡單聊一下項目

  • 說一說項目中得優(yōu)化

  • 說一說項目中遇到的問題以及解決方案

  • requestAnimationFrame 為什么不會掉幀

  • HTTP的請求報文結(jié)構(gòu)

  • HTTP 和 TCP 之間的關(guān)系

  • TCP三次握手、四次揮手

  • HTTP TCP 屬于哪個層

  • ES6的新特性

  • 箭頭函數(shù)和匿名函數(shù)的區(qū)別

  • 閉包的定義以及解決的問題,會存在哪些問題

  • 閉包是不回收引用的那個對象還是不回收外部整個作用域,你是怎么驗證這一點的

  • 跨域怎么解決

  • webpack 一般用來做什么,以及怎么去優(yōu)化

  • 瀏覽器安全

  • 常用狀態(tài)碼

  • 返回304狀態(tài)碼的流程,屬于哪一種緩存機制

  • 瀏覽器的緩存機制

  • 項目中怎么設(shè)置強制緩存

  • 你覺得框架的性能會趕上原生嘛

  • 三年之內(nèi)的前端規(guī)劃,你會怎么去實現(xiàn)你的這個規(guī)劃

一面(視頻面,1h)

  • 面試官是個好人,很和藹,繼去年春招阿里面試后的第一次體驗非常好的一次面試
  • 簡單介紹一下做過的項目
  • 如果你負(fù)責(zé)一個項目的話,你會怎么做技術(shù)選型
  • 一個場景,經(jīng)理說頁面加載慢,你會怎么去定位問題并解決
  • CDN原理
  • 你認(rèn)為一個JS腳本多大才是合適的
  • 瀏覽器的緩存機制
  • 最近看的技術(shù)博客,或者最近了解到的新技術(shù)
  • 你認(rèn)為最近了解到的技術(shù)有哪些難點
  • 你認(rèn)為看了React源碼之后你學(xué)到了什么
  • 一道算法題,螺旋矩陣
  • 三到五年內(nèi)的規(guī)劃

SHEIN

我面的是南京的前端崗,被虐的那叫一個慘,完全沒想到會問我這些問題,框架問的都是底層,雖然我讀過React15的源碼,其他的項目實戰(zhàn)。不過這家電商公司算是在南京比較好的互聯(lián)網(wǎng)了,但是不知道為什么網(wǎng)上的評價不是很好,也沒去上班過就不多少了。

一面(會議,40min)

  • 介紹,為什么學(xué)前端,一般都怎么學(xué)前端

  • React如何處理更新

  • React 中 key 的用法,常用使用場景

  • React 內(nèi)部 setState 是如何批處理的

  • Redux 和 Mobx 的區(qū)別

  • React Context 如何去使用

  • React Hooks

  • React15如何去優(yōu)化

  • useCallback useMemo的區(qū)別

  • React16 函數(shù)式編程怎么去優(yōu)化

  • React16的特性

  • 面向?qū)ο蠛兔嫦蜻^程的區(qū)別,以及他們各自的優(yōu)缺點

  • 原生JS如何實現(xiàn)繼承

  • 在使用Redux中,當(dāng)修改一個數(shù)據(jù),發(fā)現(xiàn)組件沒有更新,可能的原因有哪些

  • 如何實現(xiàn)深拷貝

  • 如何解決對象環(huán)繞的問題,例如a.b.a對象 a 的屬性b指向的是a本身,這種情況如何實現(xiàn)深拷貝。

  • less sass的區(qū)別

  • Css 實現(xiàn)圓形進(jìn)度條

  • Css實現(xiàn)瀑布流

  • React實現(xiàn)一個場景,渲染多張圖片,保證圖片的底部盡量是對齊的,然后滾動條拉到底,在請求圖片再次渲染

  • React如何實現(xiàn)輪播圖

深信服

這家的面經(jīng)牛客一大推,而且他們的題庫都沒怎么換過。。。不過這家倒是拿到了offer

一面(電話面 20min)

  • 簡單說一說最近的項目
  • 談一談對 React Hooks 的認(rèn)識
  • Redux 的數(shù)據(jù)流向
  • 判斷一個對象是否是數(shù)組
  • css 三角形
  • 翻轉(zhuǎn)一個單向鏈表
  • 青蛙跳臺階
  • 箭頭函數(shù)和普通函數(shù)的區(qū)別
  • 談一談nginx你都怎么用
  • Http緩存
  • 性能優(yōu)化擴展開講
  • async await
  • await 發(fā)生異常了還能不能繼續(xù)往下執(zhí)行
  • await如何捕獲異常
  • 一個需求 Promise 串行
  • 箭頭函數(shù)可以使用 arguments嗎 使用對象解構(gòu)const arrow = (...args) => { console.log(args) }
  • For of 和 for in 的區(qū)別

二面 (電話面 40min)

  • 聊項目,項目里的優(yōu)化,難點以及解決辦法
  • 如果你負(fù)責(zé)一個新項目,你會怎么做

杭州端點

這是我在BOSS上找的一家公司,是我連續(xù)發(fā)了十幾家公司中唯一一家給我回信息的,頓時好感度倍增,官網(wǎng)一看感覺還不錯被阿里收購了,不過后面和牛友的介紹中得出這家加班還是有點猛的,南京這邊的不清楚,杭州那邊的是加班恐怖的。面試中了解到這家的技術(shù)棧還是比較新的,至少會使用React和RN。在南京這邊的工資開的也不錯,這家也收到了offer。二面的面試官還是有點恐怖的,上來三個問題給我一個下馬威,后面的問題倒是可以輕易駕馭。

一面(電話面,15min)

  • vue 的slot如何使用
  • vue的mixin混合
  • 原型鏈
  • 自定義hooks
  • css動畫怎么實現(xiàn)
  • js動畫怎么實現(xiàn)
  • file-loader url-loader區(qū)別
  • webpack優(yōu)化

二面(視頻面,1h)

  • 專業(yè)及主修課(一大坑)
  • 編譯原理(求饒)
  • AST語法樹(求饒)
  • 操作系統(tǒng)-死鎖(求饒)
  • 我懷疑我進(jìn)錯了會議
  • 棧、數(shù)組、鏈表的區(qū)別
  • 樹的深度搜索、廣度搜索
  • react生命周期
  • shouldComponentUpdate 的作用
  • setState為什么是異步的
  • react15源碼了解了哪些方面
  • PureComponent、Component、純函數(shù)組件的區(qū)別
  • 父子通信、兄弟通信
  • redux 和 mobx 的區(qū)別
  • redux的數(shù)據(jù)是不是可突變的
  • redux如何實現(xiàn)異步action
  • redux還用過哪些中間件
  • react hooks都用過哪些
  • useState useEffect如何和Class寫法相對應(yīng)
  • useCallback。useMemo 的區(qū)別
  • react如何獲取真實DOM
  • react vue jq三者之間的區(qū)別
  • react的事件系統(tǒng)如何實現(xiàn)的
  • Ts的了解程度,一般如何使用
  • 講一下范型
  • less,sass文件怎么解析成css
  • webpack用過哪些loader
  • file-loader,url-loader的區(qū)別
  • babel如何配置
  • preset和plugins有什么區(qū)別
  • js基本數(shù)據(jù)類型
  • 事件委托
  • 講講閉包,以及優(yōu)缺點
  • css實現(xiàn)兩列左側(cè)固定,右側(cè)自適應(yīng)
  • flex布局
  • css盒模型
  • position取值
  • 絕對定位實現(xiàn)水平垂直居中
  • 為什么使用transform有什么好處
  • transform的百分比是怎么計算的
  • 頁面性能如何優(yōu)化
  • cdn原理
  • 雪碧圖如何使用
  • 如何減少網(wǎng)絡(luò)請求次數(shù)

收到字節(jié)的offer之后就沒有開始面其他的公司了,很多公司都不收20的,算是給后輩一個教訓(xùn)吧,找工作第一要準(zhǔn)備充分,第二要趁早,越年輕越值錢。

下面列出一些我在準(zhǔn)備面試的過程中收集到的一些面試題。大家可以看看,可能有一些重復(fù)的,大家將就著看吧

面試準(zhǔn)備

  • es6新特性

  • 變量提升

  • class 做了什么事

  • 用函數(shù)實現(xiàn)一個類和繼承

  • new的過程

  • 實現(xiàn)原生的call、apply、bind

  • 基本數(shù)據(jù)類型哪些

  • 判斷類型

  • promise用法、構(gòu)造函數(shù)、狀態(tài)

  • HTTP各版本的區(qū)別

  • then方法可以傳幾個參數(shù)?

  • node.js 有任務(wù)隊列嗎? 事件循環(huán)

  • 用promise寫一個delay函數(shù)。

  • 給一個二叉樹和k,找到一條從根節(jié)點到葉子節(jié)點的路徑等于k。(力扣437)

  • tcpVS udp,然后追問tcp靠什么機制實現(xiàn)可靠性

  • CSS 中 position屬性及應(yīng)用場景

  • position 設(shè)置 topleft、translateX、translate3d 設(shè)置三種方式有什么區(qū)別?

  • 判斷一個字面量是否為空的對象

  • 實現(xiàn)一個深拷貝

  • http請求有多少種

  • 詳細(xì)介紹一下options請求

  • 跨域如何解決

  • 跨域攜帶cookie

  • 簡述所有狀態(tài)碼

  • 簡述閉包

  • 算法 最大連續(xù)子序列和 dp

  • 智力題 狼吃羊

  • fixed和absolute區(qū)別

  • 流動布局實現(xiàn)三欄布局

  • 行內(nèi)元素和塊級元素有那些 區(qū)別

  • 協(xié)商緩存 304

  • http和https區(qū)別

  • 手寫正則表達(dá)式判斷電話號碼

  • web安全 xss防范

  • 如何實現(xiàn)渲染后臺傳來的html片段:innerHTML

  • innerHTML outerHTML的區(qū)別

  • el.childrenel.childNodes 的區(qū)別

  • innerText textContent的區(qū)別

  • nodeValue

  • js寬松模式和嚴(yán)格模式區(qū)別

  • 如何判斷一個對象是不是array

  • 手寫快排

  • 手寫斐波那契 遞歸 動態(tài)規(guī)劃

  • 算法 找數(shù)組里總和大于等于目標(biāo)值的連續(xù)數(shù)字合和

  • promise封裝原生ajax

  • 講一下進(jìn)程,線程,區(qū)別

  • 講一下進(jìn)程間的通信

  • 設(shè)計模式

  • Https 握手過程

  • 實現(xiàn)拖拽一個元素

  • 廣度優(yōu)先搜索

  • 0.1+0.2 == 0.3?原因?

  • POST一般可以發(fā)送什么類型的文件

  • 說一說你了解的express中間件

  • 實現(xiàn)promise

  • 對行內(nèi)元素設(shè)置padding,margin有什么效果

  • 元素層疊順序是如何計算的

  • 百分比padding,margin是根據(jù)什么值計算的

  • 有哪些鑒權(quán)方式

  • Cache-Control有哪些字段,它們的作用

  • Cache-Control: no-cache / no-store 的區(qū)別

  • Connection: Keep-alive

  • +obj是怎么計算的(obj是一個Object)

  • HTTPS SSl握手過程

  • JS浮點數(shù)精度問題,原因及解決方案

  • 算法:鏈表反序輸出,不再申請內(nèi)存空間

  • Number()的存儲空間是多大,如果后臺發(fā)送了一個超過最大字節(jié)的數(shù)字怎們辦

  • Proxy

  • TCP為什么要四次揮手

  • display:none,visibility:hidden,opactiy:0的區(qū)別。

  • git merge、git rebase的區(qū)別

  • fetch API與傳統(tǒng)request的區(qū)別

  • JSONP 詳細(xì)過程

  • React Fiber架構(gòu)、調(diào)度原理

  • setImmediate

  • HTTPS握手過程

  • js中有哪些類數(shù)組、es5和es6中有哪些方法將其轉(zhuǎn)化為數(shù)組

  • 實現(xiàn)一個左右布局,左邊固定100PX,右邊可伸縮,高度沾滿整個屏幕。右側(cè)正中間有個長方形,長方形長寬比4:3

  • CommonJS與ES6模塊化區(qū)別

  • 原型、原型鏈的區(qū)別

  • module.exports exports export的區(qū)別

  • rem em px

  • React新特性 新鉤子 HOOKS HOC

  • node 事件循環(huán)

  • 從輸入域名到頁面展現(xiàn)之間發(fā)生了什么

  • Reactkey有什么作用。 介紹一下diff算法。

  • 寫一段匹配URL的正則,包括協(xié)議、域名、端口、path、hash、querystring

  • 二分查找

  • 實現(xiàn)大數(shù)相加

  • React Diff

  • html語義化

  • 瀏覽器重繪重排,不改變div位置/樣式的情況下如何觸發(fā)重排

  • reflow避免的方案

  • http版本有哪些,及各自的區(qū)別

  • babel

  • webpack用來干什么及其工作流程

  • 客戶端/服務(wù)器端渲染的原理

  • Css單行多行省略號

  • get/post 區(qū)別

  • 實現(xiàn)如下get 函數(shù)

    const o = {
      a:{
        b:{
          c:1
        }
      }
    }
    
    const get = (target, key) => {
    
    };
    
    get(o,'a.b.c')  //1
    
  • console.log('begin');
    setTimeout(() => {
        console.log('setTimeout 1');
        Promise.resolve()
            .then(() => {
                console.log('promise 1');
                setTimeout(() => {
                    console.log('setTimeout2');
                });
            })
            .then(() => {
                console.log('promise 2');
            });
        new Promise(resolve => {
            console.log('a');
            resolve();
        }).then(() => {
            console.log('b');
        });
    }, 0);
    console.log('end');
    
  • 瀏覽器的渲染機制,為什么使用虛擬DOM

  • if ([] == false) {console.log(1);}; // 打印
    if ({} == false ) {console.log(2);};
    if ([]) {console.log(3);}; // 打印
    if ([1] == [1]) {console.log(4);};
    
  • 從給定的無序、不重復(fù)的數(shù)組data中,取出n個數(shù),使其相加和為sum,不需要找到所有的解,只要找到一個解

  • var a = function () { this.b = 3; }
    var c = new a();
    a.prototype.b = 9;
    var b = 7;
    a();
    console.log(b); // 3
    console.log(c.b); // 3
    
  • repeat 實現(xiàn),使用JS實現(xiàn)一個repeat方法,調(diào)用這個 repeatedFunc("hellworld"),會alert4次 helloworld, 每次間隔3秒

    function repeat(func, times, wait) {
    }
    const repeatFunc = repeat(alert, 4, 3000)
    
  • 千分號正則

  • 快排 選擇排序

  • 用先序遍歷將二叉樹轉(zhuǎn)化為鏈表

  • Web worker

  • 事件委托、事件冒泡、事件捕獲。

  • addEventlistener和正常的onclick=()=> 的區(qū)別

  • thunk原理

  • 實現(xiàn)duplicate()函數(shù)

    var a = "123";
    a.duplicate() // '123123"
    
    String.prototype.duplicate = function() {
        return this+this;   
    }
    
  • this

    window.name = 'ByteDance';
    class A {
        constructor() {
          this.name = 123;
        }
        getA() {
            console.log(this);
            return this.name + 1;
        }
    }
    let a = new A();
    let funcA = a.getA;
    funcA();
    
    var length = 10;
    function fn() {   
        alert(this.length)
    }
    var obj = {
        length: 5,       
        method: function (fn) {
            fn()                    //10
            arguments[0]()  //1
        },
    }
    obj.method(fn);
    
  • 用正則表達(dá)式實現(xiàn)sprintf函數(shù)

    const template = "My name is ${name},I'm from ${city}";
    const result = sprintf(template, {
        name: 'Yiming Zhang',
        city: 'FuJian',
    });
    //result="My name is Yiming Zhang,I'm from FuJian"
    
  • 手寫函數(shù)節(jié)流

  • css中display有哪幾種

  • token的作用是什么

  • inline-block的缺陷

  • 用font-size為0解決間隙問題有什么弊端

  • 實現(xiàn)一個寬高等比的div

  • 判定給定的5-7張牌中是否有同花順

  • 如果我想讓const聲明對象的屬性也不可修改,怎么實現(xiàn)?

  • 實現(xiàn)一個Queue類,要求包含兩個函數(shù)

    task函數(shù):新增一個任務(wù)。包含兩個參數(shù),等待時間和回調(diào)函數(shù)
    start函數(shù):執(zhí)行任務(wù)隊列。將所有任務(wù)按隊列順序執(zhí)行,執(zhí)行完一個任務(wù)才能執(zhí)行下一個任務(wù)
    ps:下面代碼,實現(xiàn)添加3個任務(wù),然后執(zhí)行3個任務(wù)。隔1秒,打印1;再隔2秒,打印2;再隔1秒,打印3
    
    function Queue() {
        this._callbacks = [];
        this._timeSum = 0;
    }
    
  • 寫一個函數(shù),實現(xiàn)效果

    // TODO: 輸入 'ab-cd-ef', 輸出 'abCdEf'
    function camelcase(str) {
        // 正則,匹配 -\w 替換值傳遞一個函數(shù)處理一下得到的結(jié)果
        return str.replace(/\-\w/g, match => {
            return match[1].toUpperCase();
        })
    }
    
  • 給定一個數(shù)組arr,和一個目標(biāo)數(shù)target,找出arr中和為target的兩個數(shù)的下標(biāo),一對即可

    function find(arr, target) {}
    find([2, 3, 4, 1, 5], 9) // [2, 4]
    find([2, 3, 4, 1, 5], 19) // null
    // 似乎是leetcode原題:https://leetcode-cn.com/problems/two-sum/comments/
    
  • 有一個圓桌,兩人輪流放一個棋子。棋子可以放在圓桌的任何位置,但不可以重疊其他棋子,并且棋子要可以放得下。棋子是圓的,棋子大小不變。如果最后輪到某人放棋子,但這個人無法繼續(xù)在桌上放棋子的時候,這個人就輸了。針對某個特定大小的圓桌,假設(shè)我先手,那么如何做一個策略,盡量讓自己贏。

  • css, 上下兩欄固定, 中間自適應(yīng), 直接寫css

  • webpack打包文件名為什么要有hash值

  • a 標(biāo)簽跳轉(zhuǎn)方式,新開|當(dāng)前

  • viewport各個屬性值的意義,以及如何實現(xiàn)不用viewport控制用戶不能縮放,回答用js監(jiān)聽屏幕寬度。

  • 五星好評點幾顆星亮幾顆,用css

  • 擁塞控制階段

  • async的原理

  • React Fiber

  • Set Map

  • 雙飛翼布局

  • 圣杯布局

  • Nginx中的ETAG是如何計算的

  • Web Worker

  • 301 302區(qū)別

  • requestIdleCallback

  • 盒模型

  • BFC

  • 居中

  • 偽元素實現(xiàn)垂直居中

  • 選擇器

  • .parent .child 和 .parent > .child 區(qū)別

  • CSS選擇器優(yōu)先級

  • 浮動導(dǎo)致父級高度塌陷

  • link 和 @import 的區(qū)別

  • css 動畫

  • 函數(shù)柯里化

  • bind 實現(xiàn)原理

  • 實現(xiàn)深拷貝

  • Promise 實現(xiàn)原理

  • Promise.all

  • Promise.race

  • ES6 proxy

  • ES6 generate

  • 跨域

  • 原生XMLHttpRequest

  • 微任務(wù) 宏任務(wù) EventLoop

  • flex 布局

  • Grid 布局

  • 冒泡/捕獲機制

  • BOM對象

  • 正則表達(dá)式

  • Http常用狀態(tài)碼

  • 計算機網(wǎng)絡(luò)的七層模型

  • XSS/CSRF攻擊

  • 獲取DOM節(jié)點

  • absolute基于哪個點定位

  • 單向綁定和雙向綁定的區(qū)別

  • React 和 Vue的區(qū)別

  • React優(yōu)化

  • Vue雙向綁定實現(xiàn)機制

  • React Vue 聲明周期

  • webpack優(yōu)化

  • 頁面性能優(yōu)化

  • 行內(nèi)元素 塊級元素的區(qū)別

  • 瀏覽器輸入網(wǎng)址到頁面呈現(xiàn)的過程

  • call apply 的區(qū)別

  • 重繪(repaint)/回流(重排 reflow)

  • http和https區(qū)別

  • 從數(shù)組中找出三數(shù)之和為n

  • 純Css實現(xiàn)三角形

  • js文件為什么放在body尾(html的文本結(jié)構(gòu))

  • map 有什么用跟forEach有什么區(qū)別

  • 怎么確定自己優(yōu)化了防抖

  • 了解 requestAnimationFrame

  • 實現(xiàn)垂直居中

  • 懶加載

  • jsonp 通訊原理

  • xmlHttpRequest,原理、跨域、帶cookie

  • cookie 概念、原理、存取操作、如何在http中體現(xiàn)

  • localstorage概念,原理

  • call apply 的作用和區(qū)別

  • 數(shù)組有哪些常用的方法,怎么刪除最后一個和第一個,map方法做什么用的

  • encodeURI和encodeURIComponent的區(qū)別

  • js如果實現(xiàn)動畫、requestAnimationFrame有什么作用

  • css box-sizing 做啥用的

  • css動畫怎么做,transition和animation有什么區(qū)別,怎么定義一個動畫

  • css position有哪些值可以選,分別是什么意思

  • cdn是什么,原理是什么

  • 廣度遍歷到某個dom的時間復(fù)雜度

  • bfc做了什么

  • 怎么獲取屏幕寬度

  • 原型鏈的繼承,說出各個繼承方式的優(yōu)缺點

  • 快速排序的實現(xiàn)方式

  • const數(shù)組里面的元素能不能改變。

  • css布局的應(yīng)用場景,三欄布局

  • 什么時候會margin重疊

  • 實現(xiàn)數(shù)組扁平化的polyfill

  • 數(shù)組去重

  • 查找最大公共因子字符串

  • 全排列

  • 手撕Promise

  • css盒模型 - 通過box-sizing屬性來設(shè)置

  • a標(biāo)簽偽類

  • 判斷數(shù)據(jù)類型

  • call、apply、bind

  • aync、await 看一下源碼

  • vue生命周期

  • ['abc','abcd','abcde']最大前綴是abc,找出來

  • 背包問題

  • BFC

  • 重排、重繪

  • less sass 優(yōu)缺點

  • 三欄布局

  • 對象遍歷

  • ==與===

  • HTTP緩存

  • 箭頭函數(shù)與普通函數(shù)的區(qū)別

  • Css 實現(xiàn)一個三角形

  • Promise串行之行

  • 塊級和行級的區(qū)別是什么

  • 定位有哪幾種?(static、relative、absolute、fixed)

  • 清浮動的方式(BFC、偽元素、兄弟結(jié)點)

  • 怎么判斷參數(shù)是數(shù)組還是對象?(Array.isArray、toString、instanceOf)

  • cookie字段?

  • Cookie session

  • 遍歷二叉樹用非遞歸的方式

  • for in for of

  • new一個函數(shù)的具體過程

  • nginx 正向代理 反向代理 的區(qū)別

  • xss攻擊

  • 鏈表和數(shù)組的區(qū)別

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

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

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