Hi FE !
git
前端面试题
前端小tip
构建工具
构建工具
vite
webpack
npm
vue
vue
vue2
vue3
react
GitHub
目录
DOM类
DOM 事件分级
property 和 attribute 的区别
window.onload和DOMContentLoaded区别?
事件委托(事件代理)的原理以及优缺点是什么?
事件委托类
事件捕获和事件冒泡
Event Loop类
e001-执行打印001
e002-promise和setTimeout执行
e003-执行打印003
e004-执行打印004
e005-执行打印005
优化执行
Promise类
async await 的错误捕获
P-001执行打印
promise 的链式调用
promise.all 和promise.allSettled 的区别
promise执行打印
中止promise的执行
实现一个mergePromise
实现一个异步加载图片的方法
This类
T001-this指向
T002-this
T003-this打印
T004-this大全上篇
T005-this大全下篇
this的典型应用
一面or二面类
持久化连接and管线化★★
其他类
[9,8,7,6][1,2] 输出什么
1.手写数组反转非reverse方法
2-32的随机整数
axios 的优点
defer和async的区别
fetch 的优缺点
for in 和for of 的区别
jquery中如何找到所有html中select标签的选中项?
js new操作符都做了哪些事情
JSON.stringfy和JSON.parse的弊端
js动画与css动画差异性★★
Object.getPrototypeOf()的使用
Proxy类
Proxy是如何监听数组的
proxy的基本使用
Reflect和Proxy
Q003-打印输出
Q004-instanceof与typeof的区别★★
Q005-document.ready与window.onload
Q006-typeof输出类
Q007-call和apply及bind区别
Q008-输出一个数的7的倍数
Q009-判断一个元素是否在可视区中
Q010 判断js的数据类型
Q011-Object.prototype.toString().call为什么判断类型时候这么准
require查包的过程
sort 排序原理
this和$(this)在jquery中会有何不同
typeof的返回值
两个 script ,第一个报错,第二个是否会继续解析★
何时使用三等何时使用两等
使元素消失的方法
判断一个对象是否为空对象
判断两个对象是否相等
前端无障碍Accessibility
动态执行js脚本
图片类
图片访问后如何设置直接访问下载
如何实现无缝轮播
如何在b字符串中找到a字符串的位置,a, b字符串长度未知,不能使用字符串方法,不能使用数组方法★
如何让 var [a, b] = {a: 1, b: 2} 解构赋值成功
字符串去空格
定义一个log方法,可以取代console
将字符串转成特定树形结构
嵌套的 ul-li 结构,根据 input 中输入的内容,去除相应的 li 节点,且如果某个嵌套的 ul 下面的 li 都被移除,则该 ul 的父 li 节点也要被移除
打印输出
编写函数获得对象中的值666,必须使用到 str = 'a.b.c'
获取dom的几种方法★
计算白屏时间
设计模式
js单例模式
常见的设计模式
函数类
函数的副作用
分号类
F001-for后面加一个(;)
F002-return换行后自动添加分号
原型和原型链类
y001-基础知识
y002-创建对象的三种方式
y004-执行打印
变量类
(a== 1 && a ==2 && a==3)可能为true吗?
[] == ![]结果是什么?
==的隐式转换
B001-偶然创建的全局变量
B002-变量的提升
B003-变量提升2★
B004-变量提升★
B005-变量提升
B006-truly和falsely变量
B007-作用域和自由变量的场景题
B008-变量提升★
B009-变量提升
B011-变量输出
B012-变量提升
B013-变量输出类
B014-变量提升
B015-检测一个变量是String类型
B016-变量提升类
B016-变量提升类
B019-变量输出
JS中变量提升与函数提升及其优先级
Js输出类汇总
S00-输出内容
S001-输出什么
分组选择符
变量输出
变量输出
输出类
输出类
基础类
attribute 和 property 的区别
event.target 和 event.currentTarget 的区别?
isNAN 和 Number.isNAN 的区别
what is NAN
常见面试题精选汇总
D001-return分号问题
D002-打印输出
D003-fetch封装最大并发请求★★★
D006-作用域和作用域链★★★
D008-DOM绑定事件的几种方式★★
D009-递归类
D010-[1,2,3].map(parseInt)
D011-map和set的区别
D012-垃圾回收机制及内存管理
D013-开发中遇到的内存泄漏如何解决的
D04-forEach不能中断的原因
forEach究竟能不能改变数组的值★
Vue中filter能不能写异步代码,能不能获取$vm?
vue实现响应式原理即vue如何监听data的每个属性的变化★★★★
异步
async(eventLoop类问题)
async/await 和 promise 关系。
for-of循环
Promise
宏任务和微任务
实现sleep一秒的几种方式
实现一个promise.retry 方法
异步打印类async function async1() {
手写类
054-手写一个惰性函数
S001-实现浅拷贝★
S002-数字转化为逗号金钱格式★
S003-数组扁平化★
S006-手写斐波那契数列
s007-手写一个数据双向绑定
s008-手写函数节流★★
s009-手写函数防抖★★
s010-手写深度比较
s011-手写深拷贝★★
s012-手写promiseAll
s013-书写 promiseRace
S014-手写EventHub(发布订阅)★★★
S015-手写map方法
S017-字符串最长的不重复子串
S019-在既定的数据源生成随机数组
S020-手写虚拟Dom转化为真实Dom★★★★
S022-手写 new ★
S023手写一个寄生组合继承
S024手写快排★
S025手写promise
S026-一维数组转为树结构
S027-函数柯理化★★
S028-实现有并行限制的 Promise 调度器
S029-异步控制并发数
S030-获取url参数的方法
S031-手写instanceof
S032-手写Promise加载图片
S033-创建10个标签,点击的时候弹出来对应的序号
S034-函数实现一秒输出一个数
S035-手写一个带并发限制的异步调度器Schduler
S036-手写const
S037-实现一个LRU缓存函数
S038-手写async,await的实现
S039-单调递增子序列★★★
S040-手写compose和pipe函数
S041-手写call和apply
S042-实现一个LazyMan
S043-Object.is
S044-手写原生的ajax请求
S045-手写JSON.parse
S046-手写Promise.allSettled
S047-多tab通信
S048-观察者模式
S049-手写下一个质数
S050-链式调用实现 query 方法
冷一些的手写
cold-001版本号排序的方法
cold-002实现JSON.parse
cold-003判断一个对象有环引用
cold-004判断一个对象的层数
cold-005实现lazyMan函数
S018-手写数组中第一个没出现的最小正整数
星号打印
可遇到的
S016-手写查找公用数组前缀
压缩字符串
多维输入,如何判断数组的最深层有多少层?
字符串中最长连续数字
字符串转驼峰处理
所有的可能组合数
洗牌算法
链式调用加减乘除
实现一个对象的 flatten
手写 JSON.stringify
手写 jsonp
手写-setTimeout 模拟实现 setInterval
手写bind函数
手写冒泡排序
手写基础函数
手写unshift
树形结构转数组
简单类
字符串中大小字母转换
实现Sum函数链式调用计算多数之和
数组类
Arr001-数组的length属性
Arr002-数组的直接赋值
Arr003-数组的最大最小值
Arr004-返回数组中所有真值元素的新数组
Arr005-合并两个数组
Arr006-判断是否是数组的几种方法
Arr007-删除两个数组的相同元素
Arr008-判断两数组是否相等
Arr009-forEach终止遍历方法
数组的交集并集和差级
输出类
树类
删除树结构中无用的节点
将树结构拍平为一维数组
运算类
toPrecision
Y001-浮点运算
Y002-console运算结果
Y003-强制和隐式类型转换
Y004-隐式转换2
Y006-字符串转为数字
Y007-精度丢失问题
Y008-实现函数isInteger
Y009-[1,2,3].map(parseInt)
Y010-四舍五入保留两位有效数字
Y011-后端返回大数作为唯一id精度失真
两个大数相加
闭包类
B-001
B-002经典闭包★★
B-003
B-004
B-005
B-006let a = 0, b = 0 function fn(a) { fn = function fn2(b) { console.log(++a+b); } console.log(a++); }
B-006let a = 0, b = 0 function fn(a) { fn = function fn2(b) { console.log(++a+b); } console.log(a++); } fn(1) fn(2)
B-007
B-008
任意写一个 Closure(闭包)
如何理解闭包?
高频次
hash 与 history 的区别