2019-05-05記面試

(1)垂直居中的幾種方式

text-align和vertical-align;絕對(duì)定位和transform;絕對(duì)定位和負(fù)外邊距;絕對(duì)定位和margin:auto;flex布局;table-cell布局

(2)列舉幾個(gè)vue生命周期并說明用處

beforeCreate:加loading事件,在加載實(shí)例時(shí)觸發(fā)

created:寫初始化完成時(shí)的事件,如結(jié)束loading事件,異步請(qǐng)求也可以在這里調(diào)用

mounted:掛載元素,獲取DOM節(jié)點(diǎn)

updated:寫對(duì)數(shù)據(jù)統(tǒng)一處理的函數(shù)

beforeDestroy:寫確認(rèn)停止事件的確認(rèn)框

nextTick:更新數(shù)據(jù)后立即操作DOM

(3)組件之間的傳值是怎么實(shí)現(xiàn)的

父--->子,子組件 :[props]='父data'

子--->父(點(diǎn)擊子組件按鈕,調(diào)用父組件方法),

? ? ? ? 子@click='send',methods:send(){ this.$emit('connect',this.msg)}

? ? ? ? ?父 監(jiān)聽這個(gè)$emit事件,@connect = 'say';methods:say(msg){}

同級(jí)組件:空的中間實(shí)例,實(shí)際開發(fā)中使用管理狀態(tài)的vuex

(4)vue路由跳轉(zhuǎn)攜帶參數(shù)query和params有什么不同

query傳參:可以傳遞多個(gè)參數(shù),域名/list?name=aaa&pass=bbb;不需要另外配置路由

params傳參:只能傳一個(gè)參數(shù),域名/list/3;需要配置路由

(5)如何刷新vue組件【參考鏈接https://www.cnblogs.com/yinn/p/9056731.html

hack方式強(qiáng)制子組件重置到初始狀態(tài)

<component v-if="hackReset"></component>

this.hackReset = false;

this.$nextTick( () = > {

? ? this.hackReset = true

})

(6)es6中新增了什么,列舉幾個(gè)說明

let;const常量;箭頭函數(shù);解構(gòu)賦值;剩余參數(shù)(...arr);promise(異步);Math(.trunc();.sign());Symbol(解決屬性命名的問題);模板字符串(反引號(hào) `${}`,減少很多+)

數(shù)組遍歷(for of)可以break和continue【for(let value of arr){value是數(shù)字類型};for(let index of arr.keys()){數(shù)字類型的索引}】

findIndex(-1表示不存在)

(7)es6中的Set和Map有什么不同

Set去重,解構(gòu)的成員值沒有重復(fù)的,都是唯一的,解構(gòu)的鍵名和鍵值是同一個(gè)值,在Set內(nèi)部?jī)蓚€(gè)NaN是相等的,兩個(gè)對(duì)象總是不相等的。可以用length檢測(cè)

? ? 四個(gè)操作方法: add(value):添加某個(gè)值,返回Set結(jié)構(gòu)本身;delete(value):刪除某個(gè)值,返回一個(gè)布爾值,表示刪除是否成功;has(value)返回一個(gè)布爾值,表示該值是否為Set的成員;clear():清除所有成員,沒有返回值;

? ? set內(nèi)部元素可以遍歷for...of...

Map提供了“值-值”的對(duì)應(yīng),它類似于對(duì)象,也是鍵值對(duì)的集合,但是“鍵”的范圍不限于字符串,各種類型的值(包括對(duì)象)都可以當(dāng)做鍵。注意,只有對(duì)同一個(gè)對(duì)象的引用,Map結(jié)構(gòu)才將其視為同一個(gè)鍵。這一點(diǎn)要非常小心。

? ??如果Map的鍵是一個(gè)簡(jiǎn)單類型的值(數(shù)字、字符串、布爾值),則只要兩個(gè)值嚴(yán)格相等,Map將其視為一個(gè)鍵,包括0和-0。另外,雖然NaN不嚴(yán)格相等于自身,但Map將其視為同一個(gè)鍵。

? ??實(shí)例屬性和方法:size、set、get、has、delete、clear

????遍歷方法:keys()、values()、entries()、forEach()

(8)js繼承的方式都有哪些【https://www.cnblogs.com/humin/p/4556820.html


(9)vuex是什么,怎么使用,哪種功能場(chǎng)景使用它

vue框架中的狀態(tài)管理。在main.js中引用store,注入。新建一個(gè)目錄store,內(nèi)容包括state,mutation,action。

使用場(chǎng)景:?jiǎn)雾搼?yīng)用中,組件之間的狀態(tài)。音樂播放,登錄狀態(tài),加入購(gòu)物車

(10)以下js的打印結(jié)果是什么

setTimeout(function(){

console.log(1)

},0);

new Promise(function(a,b){

console.log(2);

for(var i=0;i<10;i++){

i=9 && a ()

}

console.log(3)

}).then(function(){

console.log(4)

});

console.log(5);

答案:23541;因?yàn)閟etTimeout是異步,不管設(shè)置多長(zhǎng)時(shí)間,都是等其他運(yùn)行結(jié)束,它再運(yùn)行

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容