Skip to content

soul面试整理 #71

@sakila1012

Description

@sakila1012

写在前面

昨天参加了一次soul的电话面试,整体给我的印象是,面试官的技术很全面,而且人好。下面就对面试过程的问题进行整理:

1、事件环
哪些属于宏任务,哪些属于微任务
requestAnimation属于哪个
2、postMessage 用过么,主要应用于iframe中通信,iframe属于宏任务么?
3、vue 单项数据流原理
4、v-model 原理和底层实现
5、angular1.x provide(项目中有提到angular1.x)这个回答的不太好,很久不用这个框架了
6、ES6用过哪些
7、Reflect怎么用的
8、Symbol有哪些方法
9、Object.entries的逆是什么
10、Set和Map
11、ES6弱引用有什么作用
12、HTML有哪些类数组,怎么讲这些类数组转换成数组,Array.from可以转换成数组,底层原理是什么,ES5的实现
13、判断数据类型有哪些方法
14、Object.prototype.toString.call()可以判断数据类型的原理是?
Object.prototype.toString.call() 是最准确常用的方式。首先获取Object原型上的 toString 方法,让方法执行,让 toString 方法中的 this 执向第一个参数的值。
每一个引用类型都有 toString 方法,默认情况下, toString() 方法被每个 Object 对象集成。如果此方法在自定义对象中未被覆盖,toString() 返回 "[object type]" ,其中 type 是对象的类型。事实上,大部分引用类型比如 Array、Date、RegExp等都重写了toString 方法。因此可以直接调用 Object 原型上未覆盖的 toString() 方法,使用 call 来改变 this 指向来达到我们想要的效果。
15、NodeList和HTMLCollection的区别
16、esmodule和commonJS的区别
17、BFC,哪些样式会引起块级格式化上下文
18、position:stricky有用过么?
19、HTTP方面的内容:协商缓存,强缓存
20、状态码 2xx和3xx的是什么
21、cache-control 中no-cache和no-store的区别
22、构建方面,eslint,有没有动手写过webpack的loader,对底层实现原理了解过么?

soul正在做的两个难点:
1、web安全,使用类似asmbly,谷歌的人机交互验证码,就是使用js虚拟一个环境
2、实现自己的小程序额,类似微信小程序的,编译原理

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions