秋招一个月,躺平
整理一些高频面试题,希望能让这个世界少一点内卷
for in 和for of的区别:
for of
循环用来获取一对键值对中的值 ;
而 for in
获取的是键名,且能遍历原型上的key值和手动添加的其他键,适合遍历对象。
其它数组迭代方法:
https://blog.csdn.net/Merciwen/article/details/79875141
Array.map(),返回经过函数处理的新数组
Array.forEach(),类似for of
Array.filter(),返回筛选后的新数组
Array.reduce(),更适合做累加运算
Array.entries() 返回数组的可迭代对象
overflow:hidden的作用:
溢出隐藏、清除浮动、解决外边距塌陷等等
<!DOCTYPE> 声明是标签吗:
必须位于 HTML5 文档中的第一行,也就是位于< html >标签之前
该标签告知浏览器文档所使用的 HTML 规范。
注意:doctype 声明不属于 HTML 标签
浏览器的同源策略:
如果两个 URL 的 protocol、port (en-US) (如果有指定的话)和 host 都相同的话,则这两个 URL 是同源。
就是同源要求协议相同(http/https不同),端口相同,主机地址相同。
解决办法:CORS,具体的自己详细去了解。
判断数据类型的方法:
JS有八种数据类型:Number、String、Boolean、Null、undefined、object、symbol、bigInt
其中除了object之外都是基本类型,
而引用类型分为:Object、Array、RegExp、Date、Function。
1.typeof
常用于判断基本数据类型
4、
另外,es6中array对象的新方法,经常问
NEW干了什么:
使用new操作符调用构造函数时,会经历
(1)创建一个新对象;
(2)将构造函数作用域赋给新对象(使this指向该新对象);
(3)执行构造函数代码;
(4)返回新对象;
共4个阶段。
块级作用域:
let具有块级作用域特性
var没有
第一个输出结果为6 6 6 6 6 6,思考下为什么?
第二个输出0 1 2 3 4 5
Promise的三种状态:
1、pending - 进行中
2、fulfilled - 成功
3、rejected - 失败
函数里面执行resolve,状态变成fulfilled
执行reject,状态变成rejected
reject后的东西,一定会进入then中的第二个回调,
如果then中没有写第二个回调,则进入catch。
还有可能手写Promise.all(),并且说出它的应用场景(比如发起多个ajax请求,最后一个请求完毕后才将渲染资源)
冒泡和捕获:
事件冒泡:即事件开始时由最具体的元素接收,然后逐级向上传播到较为不具体的节点。
事件捕获:不太具体的DOM节点应该更早接收到事件,而最具体的节点应该最后接收到事件
阻止冒泡:
if(e && e.stopPropagation) { //非IE
e.stopPropagation();
} else { //IE
window.event.cancelBubble = true;
}
阻止默认浏览器动作(W3C):
e.preventDefault();
flex布局:
1、如何居中:(设置父元素的样式)
display:flex;
justify-content:center;
align-items:center;
2、flex: 1; 代表什么
相当于flex: 1 1 0%:内容区自动等比例放大/缩小占满剩余空间
自动换行flex-wrap:wrap;