1 HTML
1.1 为什么利用多个域名来存储网站资源会更有效?
- CDN缓存更方便
- 突破浏览器并发限制
- 节约cookie带宽
- 节约主域名的连接数,优化页面响应速度
- 防止不必要的安全问题
1.2 src 与 href区别
src用于替换当前元素,href用于在当前文档和引用资源之间确立联系。
src是source的缩写,指向外部资源的位置,指向的内容将会嵌入到文档中当前标签所在位置;在请求src资源时会将其指向的资源下载并应用到文档内,例如js脚本,img图片和frame等元素。
<script src ="js.js"></script>
当浏览器解析到该元素时,会暂停其他资源的下载和处理,直到将该资源加载、编译、执行完毕,图片和框架等元素也如此,类似于将所指向资源嵌入当前标签内。这也是为什么将js脚本放在底部而不是头部。
href是Hypertext Reference的缩写,指向网络资源所在位置,建立和当前元素(锚点)或当前文档(链接)之间的链接,如果我们在文档中添加
<link href="common.css" rel="stylesheet"/>
那么浏览器会识别该文档为css文件,就会并行下载资源并且不会停止对当前文档的处理。这也是为什么建议使用link方式来加载css,而不是使用@import方式。
1.3 rgba()和opacity的透明效果有什么不同?
opacity作用于元素,以及元素内的所有内容的透明度。
而rgba()只作用于元素的颜色或其背景色。(设置rgba透明的元素的子元素不会继承透明效果!)
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;
}
}