1.vue 如何實現雙向綁定? data和computed的區別? 生命週期?css
當你把一個普通的 JavaScript 對象傳給 Vue 實例的 data 選項,Vue 將遍歷此對象全部的屬性,並使用 Object.defineProperty 把這些屬性所有轉爲 getter/setter。這些 getter/setter 對用戶來講是不可見的,可是在內部它們讓 Vue 追蹤依賴,在屬性被訪問和修改時通知變化。每一個組件實例都有相應的 watcher 實例對象,它會在組件渲染的過程當中把屬性記錄爲依賴,以後當依賴項的 setter 被調用時,會通知 watcher 從新計算,從而導致它關聯的組件得以更新!vue
1.data屬性的值,不會隨賦值變量的改動而改動。若是要改變這個屬性的值,則須要直接給data屬性賦值,視圖上對這個屬性的顯示纔會變。webpack
2.computed屬性,屬於持續變化跟蹤。在computed屬性定義的時候,這個computed屬性就與給它賦值的變量綁定了。改變這個賦值變量,computed屬性值會隨之改變。es6
生命週期 beforeCreted create beforeMount mounted beforeUpdated updated activated deactivated beforeDestroy destroyed errorCaptured web
2.vue router link後面加參數?vue-router
const User = {
props: ['id'],
template: '<div>User {{ id }}</div>'
}
const router = new VueRouter({
routes: [
{ path: '/user/:id', component: User, props: true },gulp
// 對於包含命名視圖的路由,你必須分別爲每一個命名視圖添加 `props` 選項
]
})promise
2..object的方法?cookie
Object.assign() 淺拷貝less
object.defineProperty() 直接在一個對象上定義新的屬性或修改現有屬性,並返回該對象。
object.toString()
object.valueof()
3.cookie和localstroage的區別?
4. http get和post的區別?
5.webpack和gerunt的區別?
6.兼容
7.同源策略
8.跨越
9.promise
10.es6的知識點
11 seajs和requirejs區別?
12 vue-router的原理 是利用h5的history 屬性 hash
13 event loop 是事件循環
js是一個單線程,全部的任務都須要排隊,任務分爲同步任務和異步任務,同步任務進入主線程 ,作完一件事之後在作下一件事 異步是不進入主線程的,而進入【任務隊列】的任務,只有任務隊列通知主線程,某個異步任務要執行了,主線程纔會執行,主線程從"任務隊列"中讀取事件,這個過程是循環不斷的,因此整個的這種運行機制又稱爲Event Loop
14 .宏任務 微任務
先執行宏任務 在執行微任務
宏任務macrotask:
(事件隊列中的每個事件都是一個macrotask)
優先級:主代碼塊 > setImmediate > MessageChannel > setTimeout / setInterval
好比:setImmediate指定的回調函數,老是排在setTimeout前面
微任務包括:優先級:process.nextTick > Promise > MutationObserver