前端面試記錄

今天面試的是一家外包公司,時間是2019年9月3日

先是個人介紹,之前項目的介紹

1.問var let const 區別
答:let 就是 var 的升級版,沒有變量聲明的隨意提升,擁有暫時性死區,擁有自己的作用域,在同一作用域下不允許使用let再對同一變量使用let再次聲明,
const 就是在let的基礎上不能再對之前聲明的變量重新進行賦值,除非是對象中的屬性可以進行重新定義,const的好處就是在團隊開發的時候用這個聲明變量可以告訴團隊開發人員看到這個的時候知道這個最好是不要改動的變量

2.問都瞭解ES6 的哪些語法
答:解構賦值(對複雜數據進行解構精確獲取到複雜數據解構中的某個確切值);

模板字符串(在es5字符串上做了升級,可以利用${}引用變量,可以解決es5字符串換行需要\r的方式);

promise對象:狀態行爲相分離,外部調用then,catch,(還有一個失敗狀態方法我沒答)方法,主要用於解決回調地獄,並且這裏提到我經常用的是 在函數前使用async關鍵字 在函數內部對異步函數前加上await解決異步函數同步執行

class關鍵字:ES6中對面向對象編程提出的新關鍵字,創建構造函數,,順便提了ES6中使用class..extends實現對象數據深拷貝的問題

symbol數據類型:js的第七種數據類型,比如對象中有了一個A屬性,此時用var A = symbol() 創建一個獨一無二但是名字一樣的變量,可以繼續添加這個 屬性名字到對象中,並且不會重疊掉之前的對象所有的A屬性,

3.問平常如何解決兼容性問題:
答:css3中的transform屬性各個瀏覽器兼容不同,編寫過程中需要加上各個瀏覽器內核前綴,能用js實現的動畫不用animation屬性,在打包項目的時候使用postcss 將less scss 等css預解析器轉換成css樣式表,用babel將ES6語法轉換成ES5語法…

4.然後又問了我一遍 var let const 什麼區別(在這裏想吐槽一下了,emmmm不知道爲啥這麼在乎這個)

5.問ES6的結構
一臉懵逼直接說不知道,平常都是拿來就用,沒有過多深究
回來查了一下文檔這裏給一個鏈接有興趣的可以去了解一下
https://blog.csdn.net/qq_38402364/article/details/89457181

6.面試官出了這麼一個題:
問我打印出 this.a 是什麼結果 ,我二話沒說直接說報錯,說因爲let在同一個作用域中重複對同一個變量進行賦值的時候會發生報錯,當時面試官還突然面帶微笑了,我TM以爲我答的很6…回來實驗後發現是undefined,並且我現在還在疑惑爲什麼this指向window

<script>
                
                let a = 10;
                switch (10) {
                    case 10:
                        let a = 20;
                        console.log(this)//window
                        console.log(this.a)//undefined
                        break;
                
                    default:
                        break;
                }
            </script>

7.問vue使用程度談一下:
談了一下生命週期,組件傳值,路由跳轉,路由守衛,搭配axios請求服務器數據,vuex的和正常組件通訊的區別

其實主要還是自我介紹 項目介紹 這兩個點我覺得是面試官看中的,並且簡歷千萬不要虛假,熟練就是熟練,精通就是精通,不會就是不會,因爲他可能都不知道問什麼,他也是看着我的簡歷拿個筆比劃着問我的,最後沒想到面試完直接給我談工資了,說的6000,然後下午發消息來又說6500讓我第三天就可以上班.總的來說整體比較簡單淺顯,我花了很多功夫研究的作用域閉包原型鏈,居然基本都沒有提到,

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