js基础
for和forEach的区别:
1.for循环按顺序遍历,forEach使用迭代器遍历
2.for循环是随机访问元素,foreach是顺序链表访问元素
3.对于arraylist,是顺序表,使用for循环可以顺序访问,速度较快;使用foreach会比for循环稍慢一些。
对于linkedlist,是单链表,使用for循环每次都要从第一个元素读取next域来读取,速度非常慢;使用foreach可以直接读取当前结点,数据较快;
JS基本类型与引入类型
https://www.cnblogs.com/liu-di/p/11209993.html
let,const和var的区别
https://blog.youkuaiyun.com/weixin_43681425/article/details/89484926
- let 声明的变量具有块作用域的特征。
- 在同一个块级作用域,不能重复声明变量。
- let 声明的变量不存在变量提升
let使用规则
1.let声明的变量不存在变量提升的问题,必须遵循 "先声明,后使用"否则会报错。但用var声明不会出现报错。
2.let声明的变量,存在块级作用域。let声明的变量只在所声明的代码块内有效,块级作用域{},包括if和for
3.let不允许在同一作用域内重复声明同一个变量,var在同一个作用域内声明同一个变量后面会覆盖前面的,但是let会报错。
4.存在暂时性死区,在代码块内使用let声明变量之前,该变量是不可使用的。只要在作用域内使用let命令,那么所声明的变量就被"绑定"在作用域内,不管在外部有没有声明。
在ES6中,如果在代码块内使用let和const都存在暂时性死区,都必须遵守 "先声明,后使用"的规则。
ES6规定,暂时性死区不存在变量提升的问题,主要是为了解决"先使用,后声明"带来的问题。只要进入暂时性死区,变量就已经存在,但是必须要等到声明完了之后才可以获取和使用。
const使用规则
1.const用来声明一个常量,一旦声明其值不可更改。所以const在声明的时候必须要初始化,不能先声明再初始化否则会报错。
2.const声明的变量只在块级作用域内有效。
3.const声明的变量存在暂时性死区。
4.const在同一个作用域内不可重复声明变量
5.但是用const声明的对象的属性是可以更改的,因为const实质上保证的并不是变量的值不得改动,而是变量指向的内存地址的值不得改动。对于简单类型数据,值就保存在变量指向的内存地址中,相当于常量。而对于复合型的数据,变量指向的是内存地址保存的是一个指针。const只能保证指针是不可以被更改,但指针指向的数据结构是可以被改变的。
基本数据类型
number,string,boolean ,undefined,null
什么是Symbol,它的使用场景是什么?
数组与伪数组区别
https://www.cnblogs.com/liudemeng/p/11510275.html
数组原型上面的方法有哪些,哪些是可以改变数组的,哪些是不可以的?
改变原数组的方法:
ES5:
a.splice()/ a.sort() / a.pop()/ a.shift()/ a.push()/ a.unshift()/ a.reverse()
ES6:
a.copyWithin() / a.fill
不改变原数组的方法:
ES5:
slice、join、toLocateString、toStrigin、cancat、indexOf、lastIndexOf、
ES7:
includes
js中遍历数组并不会改变原始数组的方法总共有12个:
ES5:
forEach、every 、some、 filter、map、reduce、reduceRight、
ES6:
find、findIndex、keys、values、entries
如何转换一个类数组对象,大致原理是怎么样的?
https://blog.youkuaiyun.com/weixin_41796631/article/details/81586153
了解JS的作用域么,函数作用域是在什么时候形成的
什么是闭包,它有什么作用,它的原理
https://blog.youkuaiyun.com/zwt_guiji/article/details/81328561
JS的原型链
如何实现一个 new
https://blog.youkuaiyun.com/qq_39985511/article/details/87692673
什么是箭头函数,它和普通函数的区别
this的指向【通过题目考察,表述结果,解释理由】
如何迭代一个对象,for…in这种方式,如何取出对象自己的属性
https://blog.youkuaiyun.com/boysky0015/article/details/73770210
Object.assign它是一个浅拷贝还是深拷贝
https://blog.youkuaiyun.com/qq_42089654/article/details/88017609
描述一下Event Loop,这个循环会一直下去么,宏任务和微任务的区别【通过笔试题的方式,表述结果,解释理由】
https://blog.youkuaiyun.com/guo8ke/article/details/103893082
浏览器的事件机制有哪几个阶段?addEventListener的第三个参数起到什么作用?
链式调用
let index = 0
let stack = []
function next(){
let fn = stack[index]
index++
if(typeof fn === 'function') {
fn()
}
}
var obj = {}
obj.sleep = function(delay) {
stack.push(function() {
setTimeout(() => {
next()
},delay)
})
return this
}
obj.eat = function() {
stack.push(function() {
next()
})
return this
}
task('zhangsan').sleep(1000).eat().sleep(1000).eat()
next()
如何实现一个请求超时
http://www.imooc.com/wenda/detail/464902
垃圾回收机制
补充面试题
css基础
什么是盒模型,如何进行不同盒模型的切换
样式的优先级排序,如何去获取一个样式的相邻元素
https://www.cnblogs.com/ombre/p/7418667.html
http://www.maomao365.com/?p=11589
position的属性值有哪些,它们的区别是什么
列举一下移动端适配方案
https://blog.youkuaiyun.com/qq_41047322/article/details/81108502
http://caibaojian.com/rem-and-px.html
flex的布局了解么,什么是主轴,如何控制主轴和副轴
https://www.cnblogs.com/luguankun/p/10386233.html
http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html
Flex的优点和缺点,如何用flex布局两边固定,中间自适应;同时其他方式能实现么
https://blog.youkuaiyun.com/a18792627168/article/details/79686746
如何实现水平垂直居中
如何清除浮动,清除浮动的原理
css的动画如何实现
重绘与回流
1px的问题可以如何去解决
https://blog.youkuaiyun.com/caochenyu0/article/details/53813074
网络层
在浏览器输入一个URL的整体过程是怎么样的
https://blog.youkuaiyun.com/damn_yang/article/details/90727758
浏览器渲染页过程描述
https://blog.youkuaiyun.com/weixin_34296641/article/details/89291790
前端性能优化之白屏时间
浏览器存储之Cookie、LocalStorage 和 SessionStorage的区别详解
https://blog.youkuaiyun.com/victoryzn/article/details/82950175
js中操作cookie
http缓存机制
常见的HTTP状态码有哪些
https://blog.youkuaiyun.com/laishaohe/article/details/79052085
http 请求包含哪几个部分(请求行、请求头、请求体)
跨域的实现方法有哪几种?
描述一下JSONP的原理
描述一下CORS的过程
https://blog.youkuaiyun.com/siriusol/article/details/104161142
小程序
微信小程序同层渲染原理剖析
https://blog.youkuaiyun.com/feeltouch/article/details/106495108
微信小程序bindtap与catchtap的区别
小程序的通信是怎么样的
小程序的setData的数据如何很大,如何解决
https://blog.youkuaiyun.com/liyi1009365545/article/details/89680717
前端监控系统
vue数据埋点
webpack面试
https://juejin.im/post/5e6f4b4e6fb9a07cd443d4a5
vue面试
https://juejin.im/post/5c6621565188256220140756
https://juejin.im/post/5e649e3e5188252c06113021
算法
二叉树
队列
快排
深拷贝
差集、并集、交集算法
数组去重
数组flat
实现new
实现bind,Promise,Promise.all,Promise.race
判断最大值,最小值
前端微服务
参考:https://blog.youkuaiyun.com/qq_33332184/article/details/105474228
https://github.com/niuyueyang/iframeVue
其他
koa与express区别
https://blog.youkuaiyun.com/willemwei023/article/details/105905982
koa与express常用中间件