1、背景css
2019.9.16參加了個人第一個前端面試,投遞的公司是字節跳動(上海),簡歷投出一週後被通知參加視頻面試,如下爲部分面試題。html
1.flex佈局怎樣實現頁面固定?前端
容器屬性css3
元素屬性面試
0
,即若是存在剩餘空間,也不放大。若是全部項目的flex-grow屬性都爲1,則它們將等分剩餘空間(若是有的話)。若是一個項目的flex-grow屬性爲2,其餘項目都爲1,則前者佔據的剩餘空間將比其餘項多一倍。width
或height
屬性同樣的值(好比350px),則項目將佔據固定空間。
Ajax是Asynchronous JavaScript and XML的縮寫,意思就是用JavaScript執行異步網絡請求。數據庫
參考連接:https://www.liaoxuefeng.com/wiki/1022910821149312/1023022332902400api
1 var xml=new XMLHttpRequest();
1 xml.open("Get/Post", "url", true/false);//true爲異步,false爲同步
1 xml.send(null);//GET請求 2 xml.send(string);//POST請求
1 var xml=new XMLHttpRequest(); // 新建XMLHttpRequest對象 2 3 xml.onreadystatechange = function () { // 狀態發生變化時,函數被回調 4 if (xml.readyState === 4) { // 成功完成 5 // 判斷響應結果: 6 if (xml.status === 200) { 7 // 成功,經過responseText拿到響應的文本: 8 return success(xml.responseText); 9 } else { 10 // 失敗,根據響應碼判斷失敗緣由: 11 return fail(xml.status); 12 } 13 } else { 14 // HTTP請求還在繼續... 15 } 16 } 17 18 // 發送請求: 19 xml.open('GET', '/api/categories'); 20 xml.send(); 21 22 alert('請求已發送,請等待響應...');
追問:GET和POST的區別數組
參考連接:http://www.javashuo.com/article/p-yvklfivs-mw.html瀏覽器
3.JS經常使用事件有哪些?緩存
參考連接:https://www.w3school.com.cn/jsref/jsref_events.asp
屬性 | 當如下狀況發生時,出現此事件 |
---|---|
onabort | 圖像加載被中斷 |
onblur | 元素失去焦點 |
onchange | 用戶改變域的內容 |
onclick | 鼠標點擊某個對象 |
ondblclick | 鼠標雙擊某個對象 |
onerror | 當加載文檔或圖像時發生某個錯誤 |
onfocus | 元素得到焦點 |
onkeydown | 某個鍵盤的鍵被按下 |
onkeypress | 某個鍵盤的鍵被按下或按住 |
onkeyup | 某個鍵盤的鍵被鬆開 |
onload | 某個頁面或圖像被完成加載 |
onmousedown | 某個鼠標按鍵被按下 |
onmousemove | 鼠標被移動 |
onmouseout | 鼠標從某元素移開 |
onmouseover | 鼠標被移到某元素之上 |
onmouseup | 某個鼠標按鍵被鬆開 |
onreset | 重置按鈕被點擊 |
onresize | 窗口或框架被調整尺寸 |
onselect | 文本被選定 |
onsubmit | 提交按鈕被點擊 |
onunload | 用戶退出頁面 |
4.怎樣綁定和解綁事件?
參考連接:http://www.javashuo.com/article/p-riknxqwx-bv.html
1 <input onclick="myAlert()" type="button" value="點擊我,彈出警告框" />
2 function myAlert(){ 3 alert("DOM元素中直接綁定"); 4 }
1 <input id="btn" type="button" value="點擊我,彈出警告框" />
2 document.getElementById("btn").onclick=function(){ 3 alert("JavaScript代碼中綁定"); 4 }
1 <input id="btn" type="button" value="點擊我,彈出警告框" />
2 document.getElementById("btn").addEventListener("click",fun);
3 function fun(){
4 alert("綁定事件監聽函數");
5 }
1 document.getElementById("btn").onclick=false/null;
1 document.getElementById("btn").removeEventListener("click",fun);
5.z-index的值能夠取0或負數嗎?
參考連接:https://blog.csdn.net/lhjuejiang/article/details/80945334
能夠取0或負值。z-index負值能夠隱藏元素,只須要層疊上下文內的某一個父元素加個背景色就能夠。它與clip隱藏想必的一個優點是:元素無須絕對定位,設置position:relative就能夠隱藏,另外一個優點是它對原來的佈局以及元素的行爲沒有任何影響。而clip隱藏會致使空間focus的焦點發生細微的變化,在特定條件下是有體驗問題的。它的不足之處就是不具備廣泛適用性,須要其餘元素配合進行隱藏。
6.px、em和rem的區別,rem怎樣使用?
參考連接:https://blog.csdn.net/qq_36150631/article/details/80500770
1 #box{ 2 font-size:14px; 3 width:10em; 4 } 5 <div id="box">div的寬度爲140px</div>
1 html{ 2 font-size:14px; 3 #box{ 4 width:10rem; 5 } 6 <div id="box">div的寬度爲140px</div>
假定一個數組arr的元素從左到右依次是負數、零和正數。請打印出最後一個負數和第一個正數出現的位置。如arr=[-2,-1,0,0,0,0,1,2] 最後一個負數的位置是2,第一個正數的位置是7。如下是個人代碼:
1 var arr=[-2,-1,0,0,0,0,1,2]; 2 var a,b; 3 for(var i=0;i<arr.length;i++){ 4 if(arr[i]<0){ 5 a=arr.indexOf(arr[i])+1; 6 }else if(arr[i]>0){ 7 b=arr.indexOf(arr[i])+1; 8 break; 9 } 10 } 11 console.log('最後一位負數位置'+a+'第一位正數位置'+b);
面試官建議用二分法從中間開始查找,以減小for循環的次數
多是我運氣好,也多是面試官看我是零基礎轉行,因此出的題比較基本並不難。我回答錯誤的地方面試官很耐心地糾正,在這表示感謝。