Hi FE !
Ai
git
前端面试题
前端小tip
  • vite
  • webpack
npm
  • vue2
  • vue3
react
GitHub
Ai
git
前端面试题
前端小tip
  • vite
  • webpack
npm
  • vue2
  • vue3
react
GitHub
  • Js类

目录

  • 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-变量输出类
    • 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.parsecold-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终止遍历方法
    • Arr010-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 的区别
qdleader
本站总访问量 129823次 | 本站访客数 12人