那是我夕陽下的奔跑(一)

筆試題

1、用promise,async/awit實現圖片懶加載

loadImg(src).then();
loadImg([src1,src2]).then();

2、實現一個函數使:

a(1,2)(3)(5); // 得到11
a(1)(3,4)(8)(3,4); // 得到參數和
/**
 * 這題考察的是函數的柯里化
 * /

3、一個素組的範圍[K, N-2 + K ],現在出現了兩個重複的,找出重複項

/**
 * 這個就是純粹的算法,我用了array的方法(肯定不是出題者的本意)-_-...平時確實沒有練這塊
 * /

4、依次寫出打印值

(function () {
  new Promise((resolve, reject) => {
    console.log('promise1')
    resolve()
  }).then(resolve => {
    console.log(2)
    new Promise(resolve => {
      console.log(4)
      resolve()
    }).then(resove => {
      console.log(5)
    })
  }).then(resolve => {
    console.log(3)
    resolve()
  })
})()
/**
 * 我的答案是1.2.3.4.5的順序,這題考察了event loop,微任務裏面的微任務執行時機問題
 * /

5、寫出結果

var a = 'hei hei'
(function() {
  if (typeof a === 'undefind') {
    var a = 'bigo'
    console.log(a)
  } else {
    console.log(a)
  }
})()
/**
 * 這題考察了執行上下文的問題,我的答案是'bigo'
 * /

6、將如下字符串轉爲json對象

let str = '{name: "zhang";"tel": 123456789}'

/**
 * 這個寫我寫了個正則,將(name):(zhang)這種東西摟出來,然後用replace($, $1, $2)遍歷生成一個json
 * /

7、用正則驗證一個圖片地址

let src = 'https://cdn.test.iamge.com/image.png'
/**
 * src具體啥樣的忘記了,反正就是要考慮協議(http、https),域名(www.xxx.com),圖片後綴(jpg、png),寫的時候感覺時間不多了,域名裏的點沒怎麼考慮,好像直接用(*)梭哈了>_<
 * /

8、寫出打印值

window.a = 'a';
b = 'b';
delete window.a
delete b
console.log(a, b)
/**
 * 我當時寫了兩個undefined....a肯定undefined了,b是不是後面驗證下
 * /

9、一個關於Symbal的問題,具體忘記了,大概就是判斷類型,搞清楚這兩點就行了

typeof Symbal // function
typeof Symbal('a') // symbal
/**
 * 這裏再跟面試官聊的時候,我記得基本數據類型裏是沒有'function'這貨的,結果他打開chrome,確確實實輸出了'function'.....
 * /

10、加一行代碼時輸出預期結果

var a = 'a', b = 'b';
// 寫下你的代碼
console.log(a.name, b.name) // a, b

筆試題就記得這些了

面試題

輸入url到頁面顯示的過程

  • dns解析,拓展了一下它的應用dns負載均衡(cdn)
  • 根據tcp/ip/以太網協議,包是如何傳到目標計算機(路由、廣播、MAC地址),順便說了下最近做h5支付的時候,後臺代碼和我的代碼都在局域網內,結果後臺拿的是內網ip地址而微信服務器拿的外網地址的原因
  • tcp連接過程的中的三次握手、慢開始、擁塞避免,一個應用開一個端口,保證包傳輸正確,拓展:http1.1(目前基本用的這個)最多建立6個tcp連接,管道機制(a、b、c三個請求依此發送,tcp會依此返回,不管哪個結果服務器先準備好),打開淘寶,我們可以看到來自不同域名的資源,就是優化這個tcp連接上限的。http2.2的多共通信,請求不必按順序返回,準備一點,返回一點。寥寥無期
  • 解析html,生成dom數,如果遇到script會阻塞dom tree的生成,所以我們一般吧scrip放在最後,link標籤加載完生成cssom數,渲染樹,根據盒模型計算dom在屏幕中的位置,渲染上去
  • js的執行,說了一下執行上下文,event loop,js獲取style執行隊列清空,立刻重繪,等等
大概就是分成這些點在說,但是說的時候感覺自己表述的很亂,漏了很多

vue

  • v-if和v-show什麼區別,vdom裏面的表現形式如何
  • v-for裏面的key的作用,vdom裏面的表現形式使怎麼樣的,優化的過程是怎麼樣的
  • compute、watch、和method的區別
  • vue模板裏面({{}})寫全局變量會怎麼樣,寫函數行不行,new語句行不行,templete裏面的作用域是怎麼樣的
  • vue的父子組件傳遞數據的方式
  • vue的原理

postcss瞭解嗎

寫過一個postcss插件

babel這塊原理

寫過一個babel插件demo

http緩存說一下

  • 強緩存
  • 協商緩存
  • etag怎麼生存成(大小文件)

從命令行輸入npm run dev後,發生了什麼?

首先讀取webpack.config文件,找到script標籤裏的dev命令指向的文件,執行這個文件,....,webpack的enter文件入口文件,解析依賴關係...

理解很淺顯,什麼代碼分割、插件、去重、壓縮這些都沒有說,就曉得個loader,babel倒是嗶哩嗶哩的說了一通+_+

webpack插件機制

es6裏面的array、string方法說一下

就說了幾個,array.from等等,沒咋記

node裏面兩個文件裏面互相引用會怎麼樣

我說在node這塊對他的理解僅限於把它當作一個開發環境,然後就是使用koa寫寫接口掉下數據庫,面試官就換了種方式問,兩個文件裏互相require會怎麼樣(大概是這個意思吧)?

es6的import是編譯時加載,require時運行時加載,值就是個引用指針,import會轉成require(webpack),所以是互相引用的關係,我看vue源碼裏面一堆相互引用,也沒啥毛病,就說應該沒問題吧。。。。

vuex原理是怎樣的,讓你實現會怎麼做

vue-router的原理怎樣的,hash模式和histroy模式怎在做

react

  • react和vue對比一下
  • react中props和state有什麼區別,他們的更改觸發的render函數的範圍是怎麼樣的
  • 說一下react的生命週期,,涼涼,瞬間忘光光,只說了幾個

Object.defineProperty和proxy的區別

目前有印象的就這些了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章