1 HTML
1.1 為什么利用多個域名來存儲網站資源會更有效?
- CDN緩存更方便
- 突破瀏覽器并發(fā)限制
- 節(jié)約cookie帶寬
- 節(jié)約主域名的連接數(shù),優(yōu)化頁面響應速度
- 防止不必要的安全問題
1.2 src 與 href區(qū)別
src用于替換當前元素片挂,href用于在當前文檔和引用資源之間確立聯(lián)系。
src是source的縮寫,指向外部資源的位置,指向的內容將會嵌入到文檔中當前標簽所在位置妇多;在請求src資源時會將其指向的資源下載并應用到文檔內,例如js腳本燕侠,img圖片和frame等元素者祖。
<script src ="js.js"></script>
當瀏覽器解析到該元素時,會暫停其他資源的下載和處理贬循,直到將該資源加載咸包、編譯、執(zhí)行完畢杖虾,圖片和框架等元素也如此,類似于將所指向資源嵌入當前標簽內媒熊。這也是為什么將js腳本放在底部而不是頭部奇适。
href是Hypertext Reference的縮寫坟比,指向網絡資源所在位置,建立和當前元素(錨點)或當前文檔(鏈接)之間的鏈接嚷往,如果我們在文檔中添加
<link href="common.css" rel="stylesheet"/>
那么瀏覽器會識別該文檔為css文件葛账,就會并行下載資源并且不會停止對當前文檔的處理。這也是為什么建議使用link方式來加載css皮仁,而不是使用@import方式籍琳。
1.3 rgba()和opacity的透明效果有什么不同?
opacity作用于元素贷祈,以及元素內的所有內容的透明度趋急。
而rgba()只作用于元素的顏色或其背景色。(設置rgba透明的元素的子元素不會繼承透明效果J铺堋)
JS題目
1.1 對象深拷貝
var isArray = Array.isArray || function (arr) {
return Object.prototype.toString.call(arr) === '[object Array]';
};
var isObj = function (obj) {
return Object.prototype.toString.call(obj) === '[object Object]';
};
function clone (val) {
if (isArray(val)) {
var res = [];
var len = val.length;
for (var index =0; index < len; index++) {
res[index] = clone(val[index]);
}
return res;
} else if (isObj(val)) {
var res = {};
for (var key in val) {
res[key] = clone(val[key]);
}
return res;
} else {
return val;
}
}