1、js数组去重。
2、js如何获取浏览器UA(user agent用户代理)。
UA用于服务器识别浏览器的版本信息,从而给对应的浏览器版本发送电脑版或手机版页面信息。
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>balabala</title>
</head>
<body οnlοad="myBrowser()">
<table border>
<form name="Browser">
<tr>
<td>浏览器名称:</td>
<td><input name="Name" type="txt" size="110%"></td>
</tr>
<tr>
<td>版本号:</td>
<td><input name="Version" type="txt" size="110%"></td>
</tr>
<tr>
<td>代码名称:</td>
<td><input name="Code" type="txt" size="110%"></td>
</tr>
<tr>
<td>用户代理标识:</td>
<td><input name="Agent" type="txt" size="110%"></td>
</tr>
</form>
</table>
<script >
function myBrowser(){
document.Browser.Name.value = navigator.appName;
document.Browser.Version.value = navigator.appVersion;
document.Browser.Code.value = navigator.appCode;
document.Browser.Agent.value = navigator.userAgent;
}
</script>
</body>
</html>
3、重绘(repaint),重排(reflow),网站重构。
解析html--->构建Dom树--->二者共同构建渲染树---->绘制页面
解析css----->
重排:渲染树的一部分必须要更新,且节点的尺寸发生了改变。就会触发重排。更影响性能。
1、添加或删除Dom元素
2、元素尺寸位置内容改变
3、元素位置,浏览器窗口改变
重绘:部分节点需要更新,但并没有改变节点形状,比如改变了背景颜色。触发重绘。
网站重构:不改变外部行为情况下,简化结构,增加可读性,提升用户体验。
通常是:1、table换成div+css
<div class="table">
<div class="table-tr">
<div class="table-td">北京</div>
<div class="table-td">深圳</div>
<div class="table-td">大连</div>
</div>
</div>
.table{display:table;height: border:..........}
.table-tr{display:table-row.....................}
.table-td{display:table-cell........................}
2、针对移动平台,SEO的优化
3、兼容现代浏览器
4、增加用户体验。
4、js对象的深克隆。????????????????????
链接:https://www.nowcoder.com/ta/front-end-interview/review?page=71
来源:牛客网
function
clone(Obj) {
var
buf;
if
(Obj
instanceof
Array) {
buf = [];
// 创建一个空的数组
var
i = Obj.length;
while
(i--) {
buf[i] = clone(Obj[i]);
}
return
buf;
}
else
if
(Obj
instanceof
Object){
buf = {};
// 创建一个空对象
for
(
var
k
in
Obj) {
// 为这个对象添加新的属性
buf[k] = clone(Obj[k]);
}
return
buf;
}
else
{
return
Obj;
}
}