撩課-Web大前端每天5道面試題-Day10

撩課-Web大前端每天5道面試題-Day10

1. px和em的區別?

px和em都是長度單位;區別是:px的值是固定的,指定是多少就是多少,計算比較容易。em得值不是固定的,並且em會繼承父級元素的字型大小。瀏覽器的預設字型高都是16px;所以未經調整的瀏覽器都符合: 1em=16px;那麼12px=0。75em, 10px=0。625em

2. CSS 去掉inline-block元素間隙的幾種方法?

間隙是怎麼來的:間隙是由換行或者回車導致的;只要把標籤寫成一行或者標籤直接沒有空格,就不會出現間隙;怎麼去除?方法1:元素間的間隙出現的原因是元素標籤之間的空格,把空格去掉間隙自然就會消失。

撩課itlike撩課itlike
方法2:利用HTML註釋標籤
撩課itlike<!——>撩課itlike
方法3:取消標籤閉合
撩課itlike撩課itlike撩課itlike撩課itlike
方法4:在父容器上使用font-size:0;可以消除間隙
撩課itlike撩課itlike撩課itlike撩課itlike
。demo {font-size: 0;}

3. 在Javascript中什麼是偽陣列?如何將偽陣列轉化為標準陣列?

偽陣列(類陣列):無法直接呼叫陣列方法,length屬性有什麼特殊的行為,但仍可以對真正陣列遍歷方法來遍歷它們。典型的是函式的argument引數,還有像調getElementsByTagName,document。childNodes之類的,它們都返回NodeList物件, 這些都屬於偽陣列。可以使用Array。prototype。slice。call(fArray)將陣列轉化為真正的Array物件。

4. 一次完整的HTTP事務是怎樣的一個過程?

基本流程:a。 域名解析;b。 發起TCP的3次握手;c。 建立TCP連線後發起http請求;d。 伺服器端響應http請求,瀏覽器得到html程式碼;e。 瀏覽器解析html程式碼,並請求html程式碼中的資源;f。 瀏覽器對頁面進行渲染呈現給使用者

5. 陣列快速排序?

思路:a) 在資料集之中,選擇一個元素作為“基準”(pivot)。b) 所有小於“基準”的元素,都移到“基準”的左邊;所有大於“基準”的元素,都移到“基準”的右邊。c) 對“基準”左邊和右邊的兩個子集,不斷重複第一步和第二步,直到所有子集只剩下一個元素為止。var quickSort = function(arr) {if (arr。length <= 1) { return arr; }var pivotIndex = Math。floor(arr。length / 2);var pivot = arr。splice(pivotIndex, 1)[0];var left = [];var right = [];for (var i = 0; i < arr。length; i++){if (arr[i] < pivot) {left。push(arr[i]);} else {right。push(arr[i]);}}return quickSort(left)。concat([pivot], quickSort(right));};

6. 開發中有哪些常見的Web攻擊技術?

a) XSS(Cross-Site Scripting,跨站指令碼攻擊):指透過存在安全漏洞的Web網站註冊使用者的瀏覽器內執行非法的HTML標籤或者JavaScript進行的一種攻擊。b)SQL注入c) CSRF(Cross-Site Request Forgeries,跨站點請求偽造):指攻擊者透過設定好的陷阱,強制對已完成的認證使用者進行非預期的個人資訊或設定資訊等某些狀態更新。

7. 正則表示式驗證郵箱格式?

var reg = /^(\w)+(\。\w+)*@(\w)+((\。\w{2,3}){1,3})$/;var email = “yjh@itlike。com”;console。log(reg。test(email)); // true

8. 正則表示式清除字串前後的空格?

function trim(str) { if (str && typeof str === “string”) { // 去除前後空白符 return str。replace(/(^\s*)|(\s*)$/g,“”); }}