1.说⼀下js的数据类型,如何判断数据类型
1. 数据类型:Number, String, Oject, Boolean, Undefined, Null,Symbol,BigInt;
Object: Array, Date, Function
2. 断数据类型: * typeof / Object.prototype.toString.call(*)
2.如何判断⼀个对象是否属于某个类
1. instanceof
3.说⼀下防抖函数的应⽤场景,并简单说下实现⽅式
场景:高频触发的事件, 如页面的滚动,浏览器尺寸变换,输入框的内容改变
实现方式: 防抖函数主要利用了闭包、高阶函数、定时器等特性
function debounce (cb, delay) {
let timer = null;
return (...arg) => {
if (timer) {
clearTimeout(timer)
}
timer = setTimeout(() => {
cb(...arg)
}, delay || 300)
}
}
4.new Promise构造函数的⼊参是什么?你在什么场景下会使⽤promise
1. ⼊参是resolve和reject两用来改变当前Pormise对象状态的回调函数
- resolve 会将状态由 Pending -> Fullfilled,并且将自己接收到的参数作为传递给 then 方法,最为then方法的参数的默认参数;
- reject 会将状态由 Pending -> Rejected,并且将自己接收到的参数作为传递给 catch 方法,最为catch方法的参数的默认参数
2. 实现链式调用;异步函数的场景···
5.vue的设计核⼼思想是什么
- 数据驱动:早期需要开发者直接通过直接操作DOM来改变视图,vue 通过 MVVM 模型的双向数据绑定的 Javascript 库,专注于View 层,当数据改变时可以通过Vue内部封装好的指令/方法,操作视图,不需要开发者操作
- 组件化:拓张html元素,封装成可重复使用的代码
6.说下vue的双向数据绑定的实现原理
在vue首次渲染时,重写data属性中所有属性将其变为响应式对象, 当vue组件中使用到相关的属性收集依赖,当属性值修改时触发相关依赖的notify方法,通知观察者Watcher 更新视图
7.APP内嵌H5⻚⾯如何和APP本⾝进⾏通信
8.微信⼩程序和传统h5⻚⾯相⽐哪个性能更好⼀些,为什么
9.H5的开发和PC端的开发有什么本质的不同
10.如何针对H5⻚⾯进⾏远程调试?
11.如何进⾏⼿机的⻚⾯或者应⽤的抓包
12.已知公司附近有两个加油站,和⼀条主⼲道,要求在24⼩时内尽可能准确的统计全市有多少台⻋, 说出你的思路