一面
- 隐藏页面元素的方法
- display:none和visibility和opacity的区别
- 它们哪些会触发重绘和回流
- 什么是重绘和回流
- 说一下盒子模型
- js的数据类型
- 基础数据类型和引用数据类型有哪些
- 深浅拷贝
- 输出题:a和b输出什么
let a = {
n: 10
};
let b = a;
b.m = b = {
n: 20
};
- var、let、const的区别
- const 一个对象的属性可以修改吗
- es6有哪些新特性
- 闭包经典题目
for(var i = 0;i < 5;i++) {
setTimeout(() => {
console.log(i)
},10)
}
- 如何让它输出01234?
- 为什么改let可以
- 还有别的方法吗
- 什么是事件循环
- 用过哪些git指令
- git merge和git rebase有什么区别
- git cherry-pick 用过吗?
- 对实习时间有什么要求吗?
- 算法题
- 字符串中有字母和数字,找出字符串中第二大的数并返回;如果没有,则返回-1
let str = "abc045643572889dsfsdf435";
function fn(str) {
let strArr = str.split("");
let first = 0,
second;
for (let i = 0; i < strArr.length; i++) {
if ("0" <= strArr[i] && strArr[i] <= "9") {
if (Number(strArr[i]) > first) {
second = first;
first = Number(strArr[i]);
} else if (Number(strArr[i]) < first && Number(strArr[i]) > second) {
second = Number(strArr[i]);
}
}
}
if (!second) {
return -1;
} else {
return second;
}
}
console.log(fn(str));
二面
- vue3相对于vue2改进了什么?(vue2和vue3区别)
- options请求的作用是什么?
- 说说浏览器缓存
- Etag和last-modify哪个优先级更高
- 为什么更推荐用Etag?
- 什么是ddos攻击
- 预防ddos攻击的方法
- 跨站脚本攻击是什么,有哪些种类
- DNS查询是用TCP还是UDP
- 说说跨域
- 怎么解决跨域
- Access-Control-Allow-Origin支持配置多个吗
- 状态码
- 401
- 400
- 301
- 500
- css文本超出显示省略号要用什么属性
- css选择器有哪些
- 它们的优先级?
- display:none和visibility的区别
- v-if和v-show有什么区别
- 它们会影响到vue的生命周期吗
- 讲讲重绘和回流
- 哪些属性会引起重绘和回流
- script标签 设置async 和 设置defer 和 不设置 的区别
- sessionStorage和localStorage和cookie的区别
- cookie的httponly属性有什么用
- 什么是事件委托
- 箭头函数和普通函数的区别
- 用call和apply可以改变箭头函数的this指向吗
- 输出题
console.log("开始");
setTimeout(() => {
console.log("输出一个信息");
}, 0);
console.log("执行");
new Promise((resolve, reject) => {
console.log("执行for循环");
for (var i = 0; i < 100; i++) {
i == 99 && resolve();
}
reject();
})
.then(() => {
console.log("执行then函数");
})
.catch(() => {
console.log("catch error");
});
console.log("执行结束")
const foo = { a: 1 };
const bar = Object.create(foo);
bar.b = 2;
const baz = Object.create(bar);
baz.c = 3;
console.log(findPrototypeByProperty(baz, "c") === baz); // true
console.log(findPrototypeByProperty(baz, "b") === bar); // true
console.log(findPrototypeByProperty(baz, "a") === foo); // true
- 类似实现instanceof
- 算法题
- 实现要求:如下效果
console.log(sum(1, 2, 3).valueOf()); // 6
sum(2, 3)(2).valueOf(); // 7
sum(1)(2)(3)(4).valueOf(); // 10
三面
- js数据类型
- 为啥0.1+0.2 !== 0.3
- 如何精确判断相等
- 深浅拷贝
- 说一下盒子模型
- 说一下响应式布局
- 现在有四个盒子,要实现在可见区域较大的时候一列排列,在可见区域较小的时候两列排列
- 怎么实现字体大小随页面缩放
- sessionStorage和localStorage和cookie的区别
- 用过vue中的什么状态管理工具吗
- vuex的原理是什么
- 算法题
// 输入是一个有序递增数组,数组中可能会有重复的数字,要求在O(1)的空间复杂度下,原地修改数组,使得数组中前面的N位是有序不重复的数字(N是数组中不重复数字的个数)。返回数组中不重复数字的长度N。
// 例如 [0, 1, 1, 2, 2, 3] 修改为[0, 1, 2, 3, ...] 输出为4
// 例如 [2, 3, 3, 6, 6] 修改为[2, 3, 6, ... ] 输出为3