前端
1.display:none和visibility:hidden兩者的區(qū)別
display: none隱藏后的元素不占據(jù)任何空間
visibility: hidden隱藏后的元素空間依舊保留
CSS3的transition支持visibility屬性
2.每個(gè)HTML文件里頭部都有<!DOCTYPE>聲明,作用
聲明HTML使用什么版本進(jìn)行編輯的指令
3.<pre>標(biāo)簽的作用
表示計(jì)算機(jī)的源代碼
4.rgba()和opacity的透明效果區(qū)別
rgba()不影響,opacity會(huì)同時(shí)影響字體的透明度
5.null和undefined區(qū)別
null: Null類型,代表“空值”,代表一個(gè)空對(duì)象指針,使用typeof運(yùn)算得到 “object”,所以你可以認(rèn)為它是一個(gè)特殊的對(duì)象值。
undefined: Undefined類型,當(dāng)一個(gè)聲明了一個(gè)變量未初始化時(shí),得到的就是undefined。
6.css實(shí)現(xiàn)元素居中
水平居中
行內(nèi)水平居中
行內(nèi)水平居中就直接用text-align: center
塊級(jí)水平居中
直接用margin: auto來實(shí)現(xiàn)
絕對(duì)定位元素的居中
可以是喲經(jīng)left: 50%, margin: 負(fù)固定值來實(shí)現(xiàn)
也可以使用transform: translate(x軸, y軸)來實(shí)現(xiàn)
flex居中
使用justify-content: center來實(shí)現(xiàn), 這個(gè)是主軸
垂直居中
行內(nèi)垂直居中
設(shè)置line-height和height一樣高就好了
絕對(duì)定位元素居中
絕對(duì)定位元素可以使用top: 50%, margin-top: 負(fù)的一半高度
或者直接使用transform: translate(x軸, y軸)來實(shí)現(xiàn)
也可以結(jié)合使用絕對(duì)定位+margin:auto來實(shí)現(xiàn)
margin: auto中的auto意思是自動(dòng)填充滿剩余空間部分
flex居中
使用flex布局來實(shí)現(xiàn) align-items: center ,代表交叉軸, 也就是垂直軸
移動(dòng)端 React Naitve
React Native生命周期

React中key的作用
渲染組件時(shí),減少性能開銷(setState是減少List中row的性能開銷)
從輸入U(xiǎn)RL到頁面加載完成的過程
1.解析HTML,構(gòu)建DOM樹
2.解析CSS,生成CSS規(guī)則樹
3.合并DOM樹和CSS規(guī)則樹,生成render樹
4.布局render樹(layout/reflow),負(fù)責(zé)各元素尺寸、位置的計(jì)算
5.繪制render樹(paint),繪制頁面像素信息
6.瀏覽器會(huì)將各層的信息發(fā)送給GUI,GUI會(huì)將各層合成(composite),顯示在屏幕上
函數(shù)參數(shù)對(duì)象arguments轉(zhuǎn)為數(shù)組args的幾種方法
var args = Array.prototype.slice.call(arguments); // 第一種方式;
var args = [].slice.call(arguments); // 第二種方式;
ar args = arguments.length === 1? [arguments[0]]: Array.apply(null, arguments); // 第三種方式
ES6規(guī)范下的方式
var args = Array.from(arguments); // 第四種方式;
分析Log的執(zhí)行順序
javascript是一門單線程語言,所以javascript是按語句的執(zhí)行順序執(zhí)行的。
雖然js是單線程,但是我們可以將任務(wù)分成兩類
1.同步任務(wù):需要執(zhí)行的任務(wù)在主線程上排隊(duì),一次執(zhí)行
2.異步任務(wù):沒有立馬執(zhí)行但是需要被執(zhí)行的任務(wù),放在 任務(wù)隊(duì)列里面,
因此,我們從上往下分析:
函數(shù)async1和async2是不會(huì)先執(zhí)行,函數(shù)聲明之后要調(diào)用才會(huì)執(zhí)行,所以先打印script start,setTimeout函數(shù)是異步的所以不會(huì)馬上執(zhí)行,setTimeout會(huì)進(jìn)入相同的Event Queue,new promise 會(huì)立即執(zhí)行, then會(huì)分發(fā)到微任務(wù).new promise和then先后順序不一定
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8"><meta name="generator" content="MediaWiki 1.22.5">
</head>
<script>
async function async1(){
console.log("async1 start");
await async2();
console.log("async1 end")
}
async function async2(){
console.log("async2");
}
console.log("script start");
setTimeout(function(){
console.log("setTimeout");
}, 0);
async1();
new Promise(function(resolve){
console.log("Promise1");
resolve();
}).then(function(){
console.log("Promise2");
});
</script>
<body>
sdfsdfsdfsd
</body>
</html>
reactJS兄弟組件間及父子組件間怎么樣通訊
1.父子組件間的通訊
通過props方式進(jìn)行傳遞
2.兄弟組件通過props方式傳遞給父組件,再傳遞給兄弟組件.