虾皮shopeeFood 商家侧 前端面经

977 阅读2分钟

一面对于js底层一层一层的深挖,和面试官有说有笑,体验极佳。之前看过好几遍冴羽大神的博客,还给面试官推进了冴羽大神的博客 体验确实好

虾皮Shopee一面

  1. JS 中有哪些数据类型

基本类型 / 引用类型

  1. 基本类型与引用类型区别

内存,基本类型栈,引用类型堆中

  1. 栈,堆是什么呢?

值在内存中保持的形式

var a = 1;

function b() {

// let a = 2; x

console.log(a);

var a = 2;

function a() {};

}

b(); //

  1. 作用域: 全局作用域与局部(函数作用作用域),及其他作用eval(),

js是词法作用域,

  1. 闭包

  2. let / const 块级作用域

  3. JS 的执行逻辑

先问了js是解释型还是编译型 解释性语言,不需要编译,而TS,和ES6都需要编译成js

js是静态语言

  1. JS 中继承的方式

原型链 与构造函数组合继承

  1. 原型链是什么?

对象上属性查找

// ... 写一段代码

Object.prototype.valueOf()

var a = 1;

console.log(a.isInt()) // true

Number.prototype.isInt = function() {
	retrun parseInt(this.valueOf()) === parseFloat(this.valueOf()) 
}
  1. 函数中的 this 的指向?

指向调用的对象,箭头函数,

  1. === 与 ==

值与类型都相等,隐式转型, toString方法和valueOf方法上面找

  1. vue 的生命周期?

8 个类型

  1. this.router/this.router / this.store

  2. vue3 的 composition api

  3. vue2 与 vue3 的不同

v3 setup / 生命周期 / proxy 代理 / Object.defineProxy 无法新增属性 / vue3 patchFlag BlockTree

  1. 跨域是什么?

协议域名端口不同,解决方案 jsonp / cors / 代理 / postMessage

  1. 前端优化有哪些,实践过哪些优化策略

代码编写, webpack 编译 ,服务端

  1. 监控平台

白屏时间,cdn 耗时

  1. react 了解的程度

  2. 业务上代码质量的提高,代码

虾皮Shopee二面

  1. qiankun沙箱隔离的原理, a. legacySandbox 单实例沙箱 b. proxySandbox 多实例沙箱 c. 因兼容性的降级策略: 快照沙箱,通过diff的方式

  2. 实现一个css沙箱 a. class前缀自定义规则 b. css module通过工程化的方式

  3. 性能优化 前端 - 代码层面和webpack工程化角度 服务端 - 网络请求,http2.0 配置headers,http缓存 客户端 - 离线包

  4. http2.0,多路复用在代码层面的应用,

  5. 扫码登录 场景题

    ssr服务端渲染的方案,但是没太多实践 通过websocket,让服务端主动推送,但是消耗太大

  6. 驼峰转换编程题,给出任意一个字符串,转换成小驼峰


const str = 'get_test'
function strToCam (str) {
  const arr = str.split('_')
  for (var i = 1; i < arr.length; i++) {
    arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].substr(1, arr[i].length - 1)
  }
    return arr.join('')
}
strToCam (str)