web前端开发工程师——高频面试题(1)

秋招一个月,躺平
整理一些高频面试题,希望能让这个世界少一点内卷

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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值