【前端】2024.09.23-美团-一面面经

1.前端基础

1.垂直居中布局

2.浏览器存储

3.浏览器缓存 强制缓存&协商缓存,

extra: etag会挂在哪个字段上

If-None-Match:浏览器在请求资源时,会将上一次请求时服务器返回的ETag值作为请求头的一部分发送给服务器

4.跨域&解决方案(常见的都要说出来)

5.浏览器循环机制,执行代码

6.js变量提升,执行代码

7.箭头函数相对普通函数的性能

8.async...await相对promise

2.简单输出

  • 1 考察js循环执行机制
JavaScript 复制代码
console.log('script start'); 

setTimeout(function() {
  console.log('setTimeout'); 
}, 0);

new Promise((res,rej)=> {
 console.log('promise') 
 rej()
}).then(function() {
  console.log('promise1');
}).catch(function(){
  return 1;
}).then(function() {
  console.log('promise2'); 
});

console.log('script end'); 
  • 2.考察js变量提升&原型链
JavaScript 复制代码
function Foo() {
    getName = function () { console.log(1); };
    return this;
}
Foo.getName = function () { console.log(2);};
Foo.prototype.getName = function () { console.log(3);};
var getName = function () { console.log(4);};
function getName() { console.log(5);}

//请写出以下输出结果:
Foo.getName();
getName();
Foo().getName();
getName();
new Foo.getName();
new Foo().getName();
new new Foo().getName();

3.项目

项目亮点、难点、有收益的点;小程序做的活动页还是什么

4.算法

力扣88-合并两个有序数组

JavaScript 复制代码
/**
 * 力扣88
 */

var merge = function(nums1, m, nums2, n) {
    let p = m - 1, q = n - 1, tail = m + n - 1;
    while (p > -1 || q > -1) {
        if (p === -1) {
            nums1[tail--] = nums2[q--];
        }
        else if (q === -1) {
            nums1[tail--] = nums1[p--];
        }
        else if (nums1[p] < nums2[q]) {
            nums1[tail--] = nums2[q--];
        }
        else {
            nums1[tail--] = nums1[p--];
        }
    }
}

// nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3
nums1 = [1,2,3,0,0,0], m = 3, nums2 = [4,5,6], n = 3
merge(nums1, m, nums2, n);
console.log(nums1);
相关推荐
用户47949283569158 分钟前
React Hooks 的“天条”:为啥绝对不能写在 if 语句里?
前端·react.js
我命由我1234526 分钟前
SVG - SVG 引入(SVG 概述、SVG 基本使用、SVG 使用 CSS、SVG 使用 JavaScript、SVG 实例实操)
开发语言·前端·javascript·css·学习·ecmascript·学习方法
用户47949283569151 小时前
给客户做私有化部署,我是如何优雅搞定 NPM 依赖管理的?
前端·后端·程序员
C_心欲无痕1 小时前
vue3 - markRaw标记为非响应式对象
前端·javascript·vue.js
qingyun9891 小时前
深度优先遍历:JavaScript递归查找树形数据结构中的节点标签
前端·javascript·数据结构
熬夜敲代码的小N2 小时前
Vue (Official)重磅更新!Vue Language Tools 3.2功能一览!
前端·javascript·vue.js
90后的晨仔2 小时前
用 Python 脚本一键重命名序列帧图片的名称
前端
辰同学ovo2 小时前
Vue 2 路由指南:从入门到实战优化
前端·vue.js
小彭努力中2 小时前
1.在 Vue 3 中使用 Cesium 快速展示三维地球
前端·javascript·vue.js·#地图开发·#cesium·#vue3
一字白首2 小时前
Vue3 进阶,新特性 defineOptions/defineModel+Pinia 状态管理全解析
前端·javascript·vue.js