一、基础问答部分
- 请描述一下https的原理以及与http的区别
- position 有哪些属性
- img 标签间距问题的原理以及如何解决
- typeof 的原理是什么,与 instanceOf 、 Object.prototype.toString.call() 的区别
- 0.1 + 0.2 === 0.3 吗?为什么?
二、手写部分
- 实现一个算法,来完成字符串相加,比如 “111” + ”2222“ = ”2333“
- 利用html css 编写样式,div垂直body居中、div内的text垂直居中,div高度等于body宽度的一半
- 类型比较
if([] == false){console.log(1)};
if({} == false){console.log(2)};
if([]){console.log(3)}
if([1]==[1]){console.log(4)} // 引用类型比对地址
if(!![]) {console.log(5)}
- bind函数实现
- trottle函数实现
三、框架部分
- 提供一个 VDOM 对象,写一个 render 函数来让他变成一颗 DOM 树。(比如大概长这样)
{
type: 'h1',
props: {
className: "",
style: "",
},
children: [] // 嵌套节点
}
- React组件通信是怎么实现的
- mixin、hoc、render props、react-hooks的优劣如何
- Time Slice的理解
- 什么是虚拟DOM呢
四、小程序部分
- 说一下微信小程序的原理
- 小程序的双向绑定和vue哪里不一样
- 小程序的生命周期函数
- 哪些方法可以用来提高微信小程序的应用速度
- bindtap和catchtap的区别是什么
五、算法部分
position 有哪些属性
position: static | relative | absolute | sticky | fixed
static: 默认值,元素出现在正常流之中;top,bottom,left,right,z-index均无效
relative: 生成相对定位的元素,相对其正常位置进行定位;对table类元素无效
absolute: 生成绝对定位的元素,相对于static定位以外的第一个父元素进行定位;绝对定位的元素可以设置外边距,且不会与其他边距合并
sticky: 可以理解为是相对定位和固定定位的混合
fixed: 通过指定元素相对于屏幕视口的位置来定位元素,打印时,元素会出现在每页的固定位置
参考说明: MDN
typeof 的原理,与 instanceOf 、 Object.prototype.toString.call() 的区别
- typeof
JS在底层存储变量的时候,会在变量的机器码的低位1-3位存储其类型信息
000:对象
010:浮点数
100:字符串
110:布尔
1:整数
对于undefined 和 null 来说,信息存储有点特殊
null 所有的机器码都为0,所以会被认为是object
undefined用-2^30整数来表示
use: typeof function() {}
能快速检查undefined,string,number,boolean类型;
当类型为object,null,array时都会返回object,无法区分
- instanceOf
use:“str” instanceof String
能检测number, function, object类型
不能检测number,boolean,string类型
- Object.prototype.toString.call()
use: Object.prototype.toString.call(“str”)
能准确的判断所有的类型。写法相对繁琐
后续可参考资料:简书