第三場:
1.TCP三向交握,DNS是什麼
建立連接配接需要三個過程(三次握手):
1.主機向伺服器發送一個建立連接配接的請求
2.伺服器接到請求後發送同意連接配接的信号
3.主機接到同意連接配接的信号後,再次向伺服器發送了确認信号
DNS是域名系統(英文:Domain Name System,縮寫:DNS)是網際網路的一項服務。它作為将域名和IP位址互相映射的一個分布式資料庫,能夠使人更友善地通路網際網路。
2.Ref的用法
Ref可以擷取本頁面的DOM元素,還可以拿到子元件中的data和去調用子元件中的方法,如用于父子間傳值。
3.祖孫元件傳參
在 vue 中,祖孫元件之間是不能直接通信的,需要通過父元件作為 中間元件。實際上祖父的關系就是兩個 父與子 的關系。
1 $props 鍊 既然是兩個父與子之間的關系,那就可以 祖傳父 再由 父傳子。而 props 可以用來接收來自父元件的值,那就可以通過 props 實作鍊式傳遞了。這種方式雖然是比較容易了解,但也是比較繁瑣的。中間元件需要接收所有的 props 等。
2 $attrs vue 在 2.4.0 版本中新增了 $attrs 屬性。根據前面的了解 $attrs 就是沒有在 props 中聲明要接收的一些屬性。此外,還可以通過 v-bind="$attrs" 把來自父元件的一些屬性直接傳遞到子元件中。在 父元件 中使用 v-on="$listeners" 把祖父元件的事件綁定到孫元件;
在孫元件中觸發來自祖父元件的自定義事件就可以了,有兩種方式。
① this.$ listeners.eventName(param)
② this.$emit(eventName, param)傳遞次序:GrandFather → Father → GrandSon
4.自定義UI元件原元件方法如何處理
使用props,引入原元件,lg:props:{...Table.props}或者mixins: [Table]
通過v-bind=”$attrs”和v-on=”$listeners”接受父級傳遞的屬性傳遞給子元件
5.promise與async await優缺點
async/await是寫異步代碼的新方式,以前的方法有回調函數和Promise。
async/await是基于Promise實作的,它不能用于普通的回調函數。
async/await與Promise一樣,是非阻塞的。
async/await使得異步代碼看起來像同步代碼
差別:
-
async/await函數前面多了一個async關鍵字。await關鍵字隻能用在async定義的函數内。async函數會隐式地傳回一個promise,該promise的reosolve值就是函數return的值。
2)我們不能在最外層代碼中使用await,因為不在async函數内。
3)使用async函數可以讓代碼簡潔很多,不需要像Promise一樣需要些then,不需要寫匿名函數處理Promise的resolve值,也不需要定義多餘的data變量,還避免了嵌套代碼。
4) 錯誤處理:Async/Await 讓 try/catch 可以同時處理同步和異步錯誤。
6.js模拟多線程
JavaScript是單線程執行的。也就是說,在任何時間點,有且隻有一個線程在運作JavaScript程式,無法同一時候運作多段代碼。
實作一:用setTimeout制造異步執行的假象
實作二:Concurrent.Thread.js
實作三:WebWork
第四場:
1.vue相鄰元件傳參
- .使用中間件eventBus
- 使用狀态管理工具vueX
2.event Bus如何傳值,為啥要寫成元件,可不可以對象
在main.js檔案中暴露出一個執行個體,export const eventBus = new Vue()
1).變量通過eventBus.$emit傳過去;eventBus.$on傳過來的變量
2).建立個bus.js 以元件形式調用
3.vueX如何傳值,actions如何異步操作
This.$store.state.xx(變量名) 取值
this.$store.commit(‘xx’, obj) 傳值; 第一個參數是mutaions中定義的方法名,第二個參數是指派對象
Actions異步操作:
在actions中送出mutation,并且可以包含任何的異步操作
一個方法中可以執行多個同步函數 ;store.dispatch在不同子產品中可以觸發多個action函數
4.路由傳參有哪些方式,params為啥一定要配name
常用的有三種:
1).在路徑中顯示參數,重新整理頁面參數不丢失 /path/:id
2).通過path比對路由;在路徑中顯示參數,重新整理頁面參數不丢失
3).通過name比對路由,不在路徑中顯示參數,重新整理頁面參數丢失
5.js執行機制
javascript是一門單線程語言,所有任務需要排隊,前一個任務結束,才會執行後一個任務。
1、同步和異步任務分别進入不同的執行"場所",同步的進入主線程,異步的進入Event Table并注冊函數。
2、當Event Table中指定的事情完成時,會将這個函數移入Event Queue。
3、主線程内的任務執行完畢為空,會去Event Queue讀取對應的函數,進入主線程執行。
4、上述過程會不斷重複,也就是常說的Event Loop(事件循環)。
6.原型和原型鍊
原型:
①所有引用類型都有一個__proto__(隐式原型)屬性,屬性值是一個普通的對象
②所有函數都有一個prototype(原型)屬性,屬性值是一個普通的對象
③所有引用類型的__proto__屬性指向它構造函數的prototype
原型鍊:
當通路一個對象的某個屬性時,會先在這個對象本身屬性上查找,如果沒有找到,則會去它的__proto__隐式原型上查找,即它的構造函數的prototype,如果還沒有找到就會再在構造函數的prototype的__proto__中查找,這樣一層一層向上查找就會形成一個鍊式結構,我們稱為原型鍊。
小結: 此次問題大都不難,簡單總結下,與以往也有很多重複的内容被我砍掉了,運氣不錯面了一個電商公司幸運拿到滿意的offer,也祝各位旗開得勝,武運昌隆!