bykj
tcp 三次握手說一下
設(shè)置image 圖片和背景顏色哪個(gè)優(yōu)先顯示
答:圖片顯示在上面,背景顏色會(huì)填充
區(qū)別:display: none;opacity: 0; visibility: hidden;
答:https://www.cnblogs.com/jing-tian/p/10969109.html
apply call bind 區(qū)別?
答:
都是用來改變函數(shù)的this對(duì)象的指向的;第一個(gè)參數(shù)都是this要指向的對(duì)象;
都可以利用后續(xù)參數(shù)傳參;apply 第二個(gè)參數(shù)是數(shù)組 call 一個(gè)個(gè)單獨(dú)寫的;
bind是返回對(duì)應(yīng)函數(shù),便于稍后調(diào)用,apply、call是立即調(diào)用;
bind()是es5中的方法,他也是用來實(shí)現(xiàn)上下文綁定,看它的函數(shù)名就知道。bind()和call與apply不同。bind是新創(chuàng)建一個(gè)函數(shù),然后把它的上下文綁定到bind()括號(hào)中的參數(shù)上,然后將它返回。
所以,bind后函數(shù)不會(huì)執(zhí)行,而只是返回一個(gè)改變了上下文的函數(shù)副本,而call和apply是直接執(zhí)行函數(shù)。
foreach map 區(qū)別?
答:forEach不會(huì)返回新的數(shù)組,而是在原數(shù)組的基礎(chǔ)上改變數(shù)組,可以用于數(shù)組的修改;
本身無法跳出循環(huán),必須遍歷所有的數(shù)據(jù)才能結(jié)束;如何跳出循環(huán)?return 跳出當(dāng)前循環(huán), throw new Error() 跳出循環(huán)
map 不改變?cè)瓟?shù)組,會(huì)將處理過的數(shù)據(jù)組成一個(gè)新的數(shù)組
filter 不會(huì)改變?cè)瓟?shù)組,但是也會(huì)將滿足條件的元素組成印個(gè)新的數(shù)組,return出來
map和filter的區(qū)別主要在于,當(dāng)過濾而不是改變的時(shí)候,map return的是一個(gè)盛放布爾值的數(shù)組
every不是過濾也不是進(jìn)行處理,也不會(huì)生成新的數(shù)組,他是對(duì)數(shù)組中的每一個(gè)元素進(jìn)行判斷
每一個(gè)元素都滿足要求就返回true,只要有一個(gè)不滿足就返回false
some和every一樣不是過濾也不是進(jìn)行處理,也不會(huì)生成新的數(shù)組,他是對(duì)數(shù)組中的每一個(gè)元素進(jìn)行判斷
但是只要有一個(gè)元素滿足要求就返回true,都不滿足就返回false
find findIndex reduce
判斷是否是數(shù)組?
答:使用isArray()方法;a instanceof Array
react 生命周期?
componentWillMount
componentDidMount
componentWillReceiveProps
shouldComponentUpade
componentWillUpdate
componentDidUpdate
componentWillUnmount
為什么不在componentWillMount里面初始化函數(shù)
答:如果在這里有異步需要處理,渲染內(nèi)容,會(huì)中斷,可能多次請(qǐng)求
這個(gè)每個(gè)項(xiàng)目的實(shí)踐不一樣吧,有的人喜歡在willMount里面初始化內(nèi)容有的人不喜歡。
- 如果初始化內(nèi)容的時(shí)候需要操作dom節(jié)點(diǎn),那肯定只能在didMount
- 如果需要需要等待請(qǐng)求返回才能渲染。并且willMount中await了請(qǐng)求,會(huì)阻礙頁面渲染。空白狀態(tài)不太友好。didMount中就可以處理請(qǐng)求前后以及請(qǐng)求中的頁面。
- 如果使用ssr。componnetWillMount在server端也會(huì)調(diào)用,但是server端不需要發(fā)請(qǐng)求獲取數(shù)據(jù)。
- 自從react 16,3以后引入了async render https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html,componentWillMount變成unsafe 的lifecycle,并且會(huì)在17.0完全移除
react 渲染很多數(shù)據(jù)如果不寫key 會(huì)發(fā)生什么?
答:可能會(huì)很卡,沒有標(biāo)記key虛擬dom 不會(huì)計(jì)算,每條數(shù)據(jù)增加進(jìn)來都會(huì)重新渲染;
受控組件非受控組件?
受控組件 只有setState 才會(huì)執(zhí)行render
非受控組件
antd 表單用過哪些?
自由發(fā)揮
webstorage 了解嗎?
redux 數(shù)據(jù)流講一下?

用戶通過出發(fā) store.dispatch(action);
然后,Store 自動(dòng)調(diào)用 Reducer,并且傳入兩個(gè)參數(shù):當(dāng)前 State 和收到的 Action。 Reducer 會(huì)返回新的 State 。
let nextState = todoApp(previousState, action);
State 一旦有變化,Store 就會(huì)調(diào)用監(jiān)聽函數(shù)。// 設(shè)置監(jiān)聽函數(shù)store.subscribe(listener);
listener可以通過store.getState()得到當(dāng)前狀態(tài)。如果使用的是 React,這時(shí)可以觸發(fā)重新渲染 View。
function listerner() {
let newState = store.getState();
component.setState(newState);
}