js常见面试题总结
- 【Q003】什么是防抖和节流,他们的应用场景有哪些
- 【Q022】如何实现一个简单的 Promise
- 【Q027】在前端开发中,如何获取浏览器的唯一标识
- 【Q031】js 中如何实现 bind
- 【Q032】js 中什么是 softbind,如何实现
- 【Q088】如何实现 promise.map,限制 promise 并发数
- 【Q102】有没有用 npm 发布过 package,如何发布
- 【Q137】js 代码压缩 minify 的原理是什么
- 【Q148】关于 JSON,以下代码输出什么
- 【Q159】什么是 CSRF 攻击
- 【Q168】在 js 中如何把类数组转化为数组
- 【Q169】Array(100).map(x => 1) 结果是多少
- 【Q177】如何在 url 中传递数组
- 【Q181】如何实现 compose 函数,进行函数合成
- 【Q196】前端中遇到过处理二进制的场景吗
- 【Q197】什么是 TypedArray
- 【Q198】如何实现类似 lodash.get 函数
- 【Q201】js 中什么是可选链操作符,如何访问数组
- 【Q202】如何实现一个深拷贝 (cloneDeep)
- 【Q215】什么是跨域,如何解决跨域问题
- 【Q220】请简述一下 event loop
- 【Q228】如何实现一个 flatMap 函数 (头条)
- 【Q230】如何裁剪图片 (情景:选择头像)
- 【Q240】如何实现一个 async/await
- 【Q241】如何使用 async/await 实现 Promise.all 的效果
- 【Q243】有没有遇到 js 捕捉不到异常堆栈信息的情况
- 【Q245】有没有用过 Promise.allSettled() ,它是干什么的
- 【Q249】使用 js 实现一个 lru cache
- 【Q253】cookie 有哪些字段
- 【Q263】你们项目的测试覆盖率是怎么做的
- 【Q266】bind 与 call/apply 的区别是什么
- 【Q272】如何查看你们 JS 项目中应采用的 node 版本
- 【Q285】有没有做过裁剪头像图片的需求,如何实现
- 【Q291】简述 node/v8 中的垃圾回收机制
- 【Q295】fetch 中 credentials 指什么意思,可以取什么值
- 【Q305】如何删除项目中没有使用到的 package
- 【Q312】如何实现 Promise.race
- 【Q338】js 中在 new 的时候发生了什么
- 【Q355】什么是 Iterable 对象,与 Array 有什么区别
- 【Q357】js 如何全部替代一个子串为另一个子串
- 【Q377】在 js 中如何实现继承
- 【Q384】python 中的 self 与 javascript 中的 this 有何不同
- 【Q389】以下输出顺序多少 (setTimeout 与 promise 顺序)
- 【Q399】实现一个 once 函数,记忆返回结果只执行一次
- 【Q402】如何实现一个函数 isPlainObject 判断是否为纯对象
- 【Q421】如何实现一个无限累加的 sum 函数
- 【Q422】JS 如何实现一个同步的 sleep 函数
- 【Q429】实现一个函数用来解析 URL 的 querystring
- 【Q435】JS 如何实现一个 sleep/delay 函数
- 【Q436】如何实现一个 sample 函数,从数组中随机取一个元素
- 【Q437】浏览器的剪切板中如何监听复制事件
- 【Q439】JSONP 的原理是什么,如何实现
- 【Q440】实现一个函数用来对 URL 的 querystring 进行编码
- 【Q441】v8 是如何执行一段 JS 代码的
- 【Q443】实现一个数组扁平化的函数 flatten
- 【Q444】介绍 CSS 隐藏页面中某个元素的几种方法
- 【Q445】实现一个数组去重函数 unique
- 【Q446】如何实现页面文本不可复制
- 【Q447】如何实现一个数组洗牌函数 shuffle
- 【Q448】异步加载 JS 脚本时,async 与 defer 有何区别
- 【Q449】vue3 中,如何监听数组的变化
- 【Q452】现代框架如 React、Vue 相比原生开发有什么优势
- 【Q453】typeof 与 instanceof 的区别
- 【Q462】JS 如何翻转一个字符串
- 【Q463】前端如何实现文件上传功能
- 【Q473】关于模块化,什么是 amd 和 umd
- 【Q474】简单介绍以下浏览器中的 module
- 【Q475】什么是 commonjs2
- 【Q479】前端上传文件时如何读取文件内容
- 【Q480】你最喜欢的三个 js 库是什么
- 【Q482】现代化前端框架中如何进行调试
- 【Q489】如何实现一个函数 lodash.merge
- 【Q490】如何实现一个 promise.any
- 【Q491】如何实现一个 Promise.all
- 【Q494】如何过滤数组中的 falsy value
- 【Q495】如何把一个数组随机打乱
- 【Q505】JS 中基础数据类型有哪些
- 【Q507】如何创建一个数组大小为100,每个值都为0的数组
- 【Q513】有没有使用过 async/await,他们的原理是什么
- 【Q514】什么是闭包,闭包的应用有哪些地方
- 【Q515】关于事件循环,一道异步代码执行输出顺序问题
- 【Q527】解构赋值一个数组,a 取第一项默认值为 3,c取剩下的值组成数组
- 【Q528】解构赋值以下对象,他们的值是多少
- 【Q529】Map 与 WeakMap 有何区别
- 【Q539】Javascript 数组中有那些方法可以改变自身,那些不可以
- 【Q540】如何判断一个数组是否包含某个值
- 【Q541】如何判断字符串包含某个子串
- 【Q549】如何判断某一个值是数组
- 【Q550】简述 Object.defineProperty
- 【Q551】Object.keys 与 Object.getOwnPropertyNames() 有何区别
- 【Q558】如何统计当前页面出现的所有标签
- 【Q561】实现一个 inherits 函数进行继承
- 【Q562】WeakMap 与垃圾回收有何关系
- 【Q563】什么是媒体查询,JS 可以监听媒体查询吗
- 【Q566】关于块级作用域,以下代码输出多少,在何时间输出
- 【Q567】如何逆序一个字符串
- 【Q568】为何 0.1+0.2 不等于 0.3,应如何做相等比较
- 【Q569】关于 this 与包装对象,以下输出多少
- 【Q571】关于类型转化,判断以下代码输出
- 【Q572】关于暂时性死域,判断以下代码输出
- 【Q573】关于词法作用域,判断以下代码输出
- 【Q574】关于 this,判断以下代码输出
- 【Q575】关于 new,判断以下代码输出
- 【Q577】关于简单的事件循环,判断以下代码输出
- 【Q581】箭头函数和普通函数的区别
- 【Q591】什么是纯函数
- 【Q594】给数字添加千位符
- 【Q598】如何实现一个深比较的函数 deepEqual
- 【Q599】Object.is 与全等运算符(===)有何区别
- 【Q602】如何把对象转化为 key/value 的二维数组
- 【Q603】在 JS 中如何监听 Object 某个属性值的变化
- 【Q605】js 中什么是 AsyncIterable
- 【Q606】关于事件循环,仅有 Promise,判断以下代码输出
- 【Q610】了解什么是 JSBridge 吗
- 【Q618】列举 Number、String、Array、Object、Promise 有哪些 API
- 【Q619】使用 JS 如何生成一个随机字符串
- 【Q622】Number.isNaN 与 globalThis.isNaN 有何区别
- 【Q623】如何判断一个数值为整数
- 【Q630】什么是安全整数,如何判断一个整数是安全整数
- 【Q638】如何把字符串全部转化为小写格式
- 【Q647】Array 中那些 API 可改变自身
- 【Q648】如何把一个数组 Array 转化为迭代器 Iterable
- 【Q656】JS 中如何实现 call/apply
- 【Q661】Number 中最大数、最大安全整数、EPSILON 都是多少,原理是什么
- 【Q665】JS 如何检测到对象中有循环引用
- 【Q666】实现二进制与十进制的互相转化的两个函数
- 【Q668】JS 中异步任务为何分为微任务与宏任务
- 【Q672】什么是原码、补码与反码
- 【Q685】如何遍历一个对象
- 【Q688】setTimeout为什么最小只能设置4ms,如何实现一个0ms的setTimeout?
- 【Q689】JS 中如何原生实现 instanceOf
- 【Q702】return promise 与 return await promise 有何区别
- 【Q703】在 ES6 Class 中,super 的过程中做了什么
- 【Q704】关于 Promise,判断以下代码的输出
- 【Q737】如何取得一个数字的小数部分与整数部分
- 【Q743】实现 batchFn 函数,可以批量执行函数
- 【Q756】Promise.race 与 Promise.any