最近也在準備換工做了,而後收集了一些我以爲今年面試會遇到常見的問題。css
若是有機會,記得也幫忙分享我一下。
2019的行情確實很糟糕。看到這麼多人收藏點贊。個人心裏也是哇涼哇涼的。
我也給一些除了面試題以外的經驗吧我相信不景氣也是相對的,提高自我也是必要的。我說說我最近在準備些什麼。html
- 首先優化本身的博客。有技術博客的求職者,一定會給面試官篩選簡歷時一個很好的印象
- 針對你想求職的企業規模,乘着這段時間,深刻的瞭解一些源碼。如中型企業大多都偏心vue。我最近也在研究其中的源碼。
- 更高bigger的,能夠在研究框架源碼中,得出一些經驗,寫一套本身框架。目前我也正在準備。
- 還有本身的npm的組件包。
核心:引用類型和非引用類型的拷貝結果是不一樣的
淺拷貝只是拷貝基本類型的數據,若是父對象的屬性等於數組或另外一個對象,那麼實際上,子對象得到的只是一個內存地址,所以存在父對象被篡改的可能,淺拷貝只複製指向某個對象的指針,而不復制對象自己,新舊對象仍是共享同一塊內存vue
//簡單的淺拷貝 var a = 1; var b = a;//賦值 console.log(b) //1 a = 2;//改變a的值 console.log(b) //1
JSON.parse() + JSON.stringify()(缺點:只能處理能夠被枚舉的屬性);
for in 循環遞歸遍歷;webpack
深拷貝就是可以實現真正意義上的數組和對象的拷貝。遞歸調用"淺拷貝"。(深拷貝會另外創造一個如出一轍的對象,新對象跟原對象不共享內存,修改新對象不會改到原對象)es6
Object.defineproperties (定義屬性)、Object.getOwnPropertyDescriptors(es2017,獲取對象的多個屬性)、Object.getOwnPropertyDescriptor(老一點,獲取對象的單個屬性的屬性),但babel能夠解決。web
__proto__
__proto__
是非標準化的;全部東西的原型鏈向上延伸到原型鏈的頂端,是什麼;面試
Object.prototype.__proto__
,結果是null.Function自己就是函數, Function.__proto__ 是標準的內置對象Function.prototype, Function.prototype.__proto__ 是標準的內置對象Object.prototype
原型鏈繼承ajax
進階一:說到變量提高,class 聲明一個類時,存在變量提高麼?爲何?npm
進階二:const 聲明一個對象,如何讓對象內部的屬性的值也沒法改變?編程
進階三:全局做用域?函數做用域?塊級做用域?做用域鏈?
進階:es6新增的原型數據類型Symbol,特色是什麼;
進階2:如何聲明兩個相等的Symbol變量?
let a = Symbol.for('a');
let b = Symbol.for('a');
a === b; // true
#### Promise是什麼? * 是異步編程的一種解決方案; * 所謂Promise,簡單說就是一個容器,裏面保存着某個將來纔會結束的事件(一般是一個異步操做)的結果。從語法上說,Promise 是一個對象,從它能夠獲取異步操做的消息。 通常何時使用? * 處理異步請求時使用,好比ajax請求; 有哪些狀態? * 狀態有pending、resolved、rejected; 怎麼捕獲他的錯誤? * 最後寫catch; * then裏面第二個參數能夠捕獲; 若是內部拋錯,可是沒有被捕獲,這個沒被捕獲的錯誤接下來會發生什麼事情? * 冒泡; 能不能被try catch捕獲?爲何? * 不能,由於是異步編程。 能不能被window.onerror捕獲? * 不能 new Promise((resolve,reject)=>throw new Error('a')).then(fn1).then(fn2,fn3).catch(fn4) 這個函數,會執行哪些函數 * fn3,沒了
這題能夠了解一下,儘管面試時候造飛船,真的幹活可能仍是擰螺絲。
在瀏覽器還沒接收到完整的HTML文件時,它就開始渲染頁面了,在遇到外部鏈入的腳本標籤或樣式標籤或圖片時,會再次發送HTTP請求重複上述的步驟。在收到CSS文件後會對已經渲染的頁面從新渲染,加入它們應有的樣式,圖片文件加載完馬上顯示在相應位置。在這一過程當中可能會觸發頁面的重繪或重排。
連續的異步請求,下一步的異步請求依賴於前一步的異步請求結果;
進階一:假若有A、B、C三個異步請求,異步請求C依賴於異步請求A和B的結果(即A和B完成後再發起C),那麼你會如何實現它?
Promise.all();
設置狀態分別標記A和B,A、B完成後會去修改本身的完成標記,而後檢查全部的狀態標記,假如都是完成狀態,而後去執行異步請求C。
是異步編程的一種解決方案;
所謂Promise,簡單說就是一個容器,裏面保存着某個將來纔會結束的事件(一般是一個異步操做)的結果。從語法上說,Promise 是一個對象,從它能夠獲取異步操做的消息。
通常何時使用?
處理異步請求時使用,好比ajax請求;
有哪些狀態?
狀態有pending、resolved、rejected;
怎麼捕獲他的錯誤?
最後寫catch;
then裏面第二個參數能夠捕獲;
若是內部拋錯,可是沒有被捕獲,這個沒被捕獲的錯誤接下來會發生什麼事情?
冒泡;
能不能被try catch捕獲?爲何?
不能,由於是異步編程。
能不能被window.onerror捕獲?
不能
new Promise((resolve,reject)=>throw new Error('a')).then(fn1).then(fn2,fn3).catch(fn4) 這個函數,會執行哪些函數 * fn3,沒了
0.1 + 0.2
的結果是什麼?進階一:爲何?
進階二:浮點數是怎麼存儲的(本問題比較難)(能夠跳到進階三,比本題簡單)
而double類型就是雙精度浮點數,這種指使用64位(8字節)來存儲一個浮點數。 根據規定,這64位bit裏,分爲三部分: 第一部分(1bit): 符號位,表示正負,正數爲0,負數爲1。 第二部分(11bit): 階碼位,也能夠稱爲指數位。 第三部分(52bit) 尾數位,即表示實際數字的。 假如正負符號的值爲S,正數S爲1,負數S爲-1; 假如指數位表示的值爲E(計算後),指數位表示的值爲2的E次方; 假如尾數位表示的值爲M,尾數位表示的值爲M; 根據科學表示法,任何一個範圍內的浮點數能夠經過如下方法來表示:(別問我爲啥,我沒去谷歌……) 浮點數 = S * Math.pow(2,E) * M;
進階三:咱們在實際開發中,若是碰見了這種浮點數計算的狀況,怎麼處理比較合適?
進階一:他們的特色分別是什麼?或者說實現原理是什麼?
進階二:彈出輸入框會發生定位錯誤,fixed佈局,怎麼解決?
進階一:若是你決定使用雪碧圖/base64字符串,你會怎麼作?