2021-07-01

两周面试总结(青岛前端)

css

左边固定200px右边自适应

说一下flex几个属性

div居中

div height是父元素宽度一般(padding%基于父元素宽度)

js类型

基本数据类型

null与undefined区别
null是表示引用类型的0 他是一个对象类型的
undefined是表示未定义的意思

symbol.iterator干啥的
是否可用for…of遍历

遍历器实现指针结构
function Obj(value) {
this.value = value;
this.next = null;
}

Obj.prototype[Symbol.iterator] = function() {
var iterator = { next: next };

var current = this;

function next() {
if (current) {
var value = current.value;
current = current.next;
return { done: false, value: value };
}
return { done: true };
}
return iterator;
}

数组

常用数组有哪些?
splice slice filter reduce push pop

flat了解吗?
扁平化数组

哪些会改变长度
splice push pop

数组浅拷贝两个数组还有关系吗
没有了

为什么不用josn的方法进行深拷贝
如果有方法 josn就会失效

说一下深拷贝的思路
遍历第一层循环判断如果是引用类型那就再次调用函数

地址携带的参数转换为obj key value形式
定义一个obj
document.URL.splite(’?’)[1].splite(’&’).foreach(item => {obj.[item.splite(’=’)[0]] = item.splite(’=’)[1])})

冒泡和快排说一下思路
冒泡使用for循环嵌套比较大小
快排使用递归

快排递归如何实现的
找到中间位置(math.floor(length/2))
遍历比较其他元素是否比他大 分别放在两个数组中
俩数组递归
然后进行concat链接中间值和递归的这俩return出去(就是每次的结果都返回链接返回链接)

数组去重(三种)
1.先转为set再用Array.from转为数组
2.reduce用includes判断false push进数组
3.使用fiter return arr.indexOf(currentValue) === index

HTTP

监听localstorage
var mysetItem = localStorage.setItem

localStorage.setItem = function(key, value) {
var setItemEvent = new Event(‘setItemE’)
setItemEvent.key = key
setItemEvent.value = value
window.dispatchEvent(setItemEvent)
mysetItem.apply(this, arguments)
}
他说这样 监听localstorage Sessionstorage改变会不会监听到
我猜不会 他给说会

后端如何设置你就不会拿到cookie
HTTPOnly

说一下状态码

三次握手四次挥手

网络结构
物理 数据链路 网络 运输 会话 表示 应用

tcp/udp(没查,记忆太久远了只记得的这几个)
可信任 全双工
不可信任 非全双

请求头中http缓存了解过吗
Cache-Control

promise

有四个请求如果前三个有一个执行返回结果了再执行第四个
使用promise包装一下前三个请求然后使用.race().then(第四个)

有四个请求如果前三个有一个都执行完了返回结果了再执行第四个
同上只不过是all

obj

说一下Object.definePropotype()参数
第一个obj
第二个key
第三个配置项(get,set,value,configurable,writeable,enumerable)

遍历对象
var cpObj
Object.keys(obj).foreach(item => {
cpObj[item] = obj[item]
})

柯里化

add(2)(3)()

function add(){
var arg = [...arguments]
return function addr() {
if(arguments.length === 0) {
return arg.reduce((a,b) {
return a+b
}
)}else {
arg = arg.concat(...arguments)
return addr}
}
}

add(2,3)(3)

function add(){
var arg = [...arguments]
return function addr() {
arg = arg.concat(...arguments)
return addr
}
add.toString = function () {
return arg .reduce((a,b) => {
return a+b
})
}
}

其实就一个判断什么时候结束不同

vue

生命周期

路由懒加载
用函数返回

v-if v-for谁个优先级高
v-for

slot 和 混入的区别
slot类似占位的意思
混入类似于组件

混入和组件中的data中元素重名会怎样
优先组件中

混入在组件中生命周期
先是混入的再是组件的

以上是小弟面试内容(很多没印象了)没挨着搜 欢迎指正(半年经验)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值