- 时长1h,两个面试官
- ps:不熟悉的知识点我在本篇面积会做一个回答
- 讲一下Vue的数据劫持
- Watch和computed的区别,有没有用过watch的一些方法?(inmediate),还有缓存相关的一些东西
- watch相关配置项
- handler:function(newval,oldval){}。也可缩写为handler(newval,oldval)类似computed中的get()。当监听的数据改变handler便会被触发。
- immediate:true|false。监听器是否立即执行,默认为false
- immediate为false时watch会等待所监听的数据改变,当数据改变时才会触发handler。而 为true时页面一加载handler便会立即执行
- deep:true|false深度监听
- 如果想要监听对象中所有的属性却只能一个个单独监听,这种做法显然是非常愚蠢。在vue中,为我们提供了方法来监听对象中的所有属性---深度监听
- 计算属性和监听属性的不同
- 1.计算属性的get必须有return,而监听属性return可有可无
- 2.computed支持缓存,只有依赖数据发生改变,才会重新进行计算;而watch不支持缓存,数据变,直接会触发相应的操作
- 3.计算属性适用于复杂的运算,而监听属性适合一些消耗性功能,比如Ajax
- 4.computed不支持异步,当computed内有异步操作时无效,无法监听数据的变化,而watch支持异步
- 5.如果一个属性是由其它属性计算而来的,这个属性依赖其它属性,多对一或者一对一,一般用computed;而当一个属性发生变化时,需要执行对应的操作,一对多,一般用watch
- v-if和v-show的区别
- v-html有什么作用
- v-html 用来更新元素的 innerHTML,v-html会先移除节点下的所有节点,调用html方法,通过addProp添加innerHTML属性,归根结底还是设置innerHTML为v-html的值
- 水平垂直居中的方法,细问了定位方法实现的细节,并且面试官补充了可以用table-ceil的方式实现
- 问flex的属性,讲了grow,shrink和basis,问还有什么其他的属性?
- 移动端适配的方案
- https握手,加密的过程
- 对称加密和非对称加密
- http的版本演化
- 常用的http状态码
- 为什么非对称加密更安全,但https还是有对称加密的方法(对称加密效率更高)
- 订阅模式
- 算法,手写在草稿纸上拍照上传
- 力扣169,要求时间复杂度O(n),空间复杂度O(1)
var majorityElement = function(nums) {
// 用map的哈希法
// let hash = new Map();
// // 一个元素单独考虑
// if(nums.length == 1) return nums[0];
// let halfLen = Math.floor(nums.length / 2)
// for(let i = 0; i < nums.length; i++){
// if(hash.has(nums[i])) {
// // 这里不能直接对hash.get(nums[i])++,需要将其值+1重新存入map,就会自动覆盖
// hash.set(nums[i],hash.get(nums[i]) + 1);
// if(hash.get(nums[i]) > halfLen){
// return nums[i];
// }
// //不存在就存进去
// } else {
// hash.set(nums[i],1)
// }
// }
// 用排序的方法
// nums.sort((a,b) => a - b);
// return nums[Math.floor(nums.length/2)];
//摩尔投票法
let cnt = 1;
let majority = nums[0]
for(let i = 1; i < nums.length; i++){
if(cnt == 0) majority = nums[i];
if(majority == nums[i]){
cnt++;
} else {
cnt--;
}
}
return majority;
};
- 只写出了时间复杂度O(n),空间复杂度O(n)的方法
- 总结,刚好是我感染新冠的时候面的,那时候状态可能不是太好,计网这块我回答的还可以,但是一些基础层面的点没有覆盖到,也算是一个不错的八股补充了
#我的实习求职记录##23届找工作求助阵地##我的求职思考##东方财富##牛客在线求职答疑中心#