撩課-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:
元素間的間隙出現的緣由
是元素標籤之間的空格,
把空格去掉間隙天然就會消失。

<div class="itlike">
  <span>撩課itlike</span><span>撩課itlike</span>
</div>

方法2:
利用HTML註釋標籤

<div class="demo">
    <span>撩課itlike</span><!-- 
    --><span>撩課itlike</span>
</div>

方法3:
取消標籤閉合
<div class="demo">
    <span>撩課itlike
    <span>撩課itlike
    <span>撩課itlike
    <span>撩課itlike
</div>

方法4:
在父容器上使用font-size:0;能夠消除間隙
<div class="demo">
    <span>撩課itlike</span>
    <span>撩課itlike</span>
    <span>撩課itlike</span>
    <span>撩課itlike</span>
</div>
.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. 數組快速排序?html

思路:
a)  在數據集之中,選擇一個元素做爲"基準"(pivot)。
b)  全部小於"基準"的元素,都移到"基準"的左邊;
    全部大於"基準"的元素,都移到"基準"的右邊。
c)  對"基準"左邊和右邊的兩個子集,
    不斷重複第一步和第二步,
    直到全部子集只剩下一個元素爲止。

 var quickSort = function(arr) {
&emsp;&emsp;if (arr.length <= 1) { return arr; }
&emsp;&emsp;var pivotIndex = Math.floor(arr.length / 2);
&emsp;&emsp;var pivot = arr.splice(pivotIndex, 1)[0];
&emsp;&emsp;var left = [];
&emsp;&emsp;var right = [];
&emsp;&emsp;for (var i = 0; i < arr.length; i++){
&emsp;&emsp;&emsp;&emsp;if (arr[i] < pivot) {
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;left.push(arr[i]);
&emsp;&emsp;&emsp;&emsp;} else {
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;right.push(arr[i]);
&emsp;&emsp;&emsp;&emsp;}
&emsp;&emsp;}
&emsp;&emsp;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,""); 
    }
}
複製代碼
相關文章
相關標籤/搜索