一面对于js底层一层一层的深挖,和面试官有说有笑,体验极佳。之前看过好几遍冴羽大神的博客,还给面试官推进了冴羽大神的博客 体验确实好
虾皮Shopee一面
- JS 中有哪些数据类型
基本类型 / 引用类型
- 基本类型与引用类型区别
内存,基本类型栈,引用类型堆中
- 栈,堆是什么呢?
值在内存中保持的形式
var a = 1;
function b() {
// let a = 2; x
console.log(a);
var a = 2;
function a() {};
}
b(); //
- 作用域: 全局作用域与局部(函数作用作用域),及其他作用eval(),
js是词法作用域,
-
闭包
-
let / const 块级作用域
-
JS 的执行逻辑
先问了js是解释型还是编译型 解释性语言,不需要编译,而TS,和ES6都需要编译成js
js是静态语言
- JS 中继承的方式
原型链 与构造函数组合继承
- 原型链是什么?
对象上属性查找
// ... 写一段代码
Object.prototype.valueOf()
var a = 1;
console.log(a.isInt()) // true
Number.prototype.isInt = function() {
retrun parseInt(this.valueOf()) === parseFloat(this.valueOf())
}
- 函数中的 this 的指向?
指向调用的对象,箭头函数,
- === 与 ==
值与类型都相等,隐式转型, toString方法和valueOf方法上面找
- vue 的生命周期?
8 个类型
-
this.store
-
vue3 的 composition api
-
vue2 与 vue3 的不同
v3 setup / 生命周期 / proxy 代理 / Object.defineProxy 无法新增属性 / vue3 patchFlag BlockTree
- 跨域是什么?
协议域名端口不同,解决方案 jsonp / cors / 代理 / postMessage
- 前端优化有哪些,实践过哪些优化策略
代码编写, webpack 编译 ,服务端
- 监控平台
白屏时间,cdn 耗时
-
react 了解的程度
-
业务上代码质量的提高,代码
虾皮Shopee二面
-
qiankun沙箱隔离的原理, a. legacySandbox 单实例沙箱 b. proxySandbox 多实例沙箱 c. 因兼容性的降级策略: 快照沙箱,通过diff的方式
-
实现一个css沙箱 a. class前缀自定义规则 b. css module通过工程化的方式
-
性能优化 前端 - 代码层面和webpack工程化角度 服务端 - 网络请求,http2.0 配置headers,http缓存 客户端 - 离线包
-
http2.0,多路复用在代码层面的应用,
-
扫码登录 场景题
ssr服务端渲染的方案,但是没太多实践 通过websocket,让服务端主动推送,但是消耗太大
-
驼峰转换编程题,给出任意一个字符串,转换成小驼峰
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)