一纸简历更新更多的简历模板,如应届生模板与三年前端模板,点击查看 →
大厂面试每日一题
首页前端部署工程化面试路线图🔥高级前端训练营🔥模拟面试
  • 汇总
    • 【Q035】http 常见的状态码有哪些
    • 【Q036】http 状态码中 301,302和307有什么区别
    • 【Q050】http 状态码 502 和 504 有什么区别
    • 【Q079】简述 http 的缓存机制
    • 【Q081】http proxy 的原理是什么
    • 【Q084】随着 http2 的发展,前端性能优化中的哪些传统方案可以被替代
    • 【Q085】http2 与 http1.1 有什么改进
    • 【Q107】什么是 Basic Auth 和 Digest Auth
    • 【Q108】gzip 的原理是什么,如何配置
    • 【Q109】可以对图片开启 gzip 压缩吗,为什么
    • 【Q110】http 的请求报文与响应报文的格式是什么
    • 【Q111】http 响应头中的 ETag 值是如何生成的
    • 【Q112】如果 http 响应头中 ETag 值改变了,是否意味着文件内容一定已经更改
    • 【Q116】http 服务中静态文件的 Last-Modified 是根据什么生成的
    • 【Q117】既然 http 是无状态协议,那它是如何保持登录状态
    • 【Q119】https 是如何保证报文安全的
    • 【Q121】我们如何从 http 的报文中得知该服务使用的技术栈
    • 【Q122】在发送 http 请求报文时,Host 是必要的吗
    • 【Q133】http 响应头中如果 content-type 为 application/octet-stream,则代表什么意思
    • 【Q136】http 向 https 做重定向应该使用哪个状态码
    • 【Q141】http 响应头中的 Date 与 Last-Modified 有什么不同,网站部署时需要注意什么
    • 【Q144】http 1.1 中的 keep-alive 有什么作用
    • 【Q147】当在浏览器中看到某资源使用了 http2 后,使用 curl 为什么看到的仍是 http 1.1
    • 【Q149】什么是队首阻塞,如何解决,原理如何
    • 【Q192】简述你们前端项目中资源的缓存配置策略
    • 【Q206】no-cache 与 no-store 的区别是什么
    • 【Q252】https 中如何保证证书是可信任的
    • 【Q267】CSP 是干什么用的了
    • 【Q273】http2 中的首部压缩的实现原理是什么
    • 【Q283】http 请求头中的 X-Forwarded-For 代表什么意思
    • 【Q301】base64 由哪64个字符构成
    • 【Q325】关于 cors 的响应头有哪些
    • 【Q327】如何避免 CDN 为 PC 端缓存移动端页面
    • 【Q356】在 node 端如何向服务器上传文件
    • 【Q358】什么情况下会发送 OPTIONS 请求
    • 【Q359】CORS 如果需要指定多个域名怎么办
    • 【Q361】既然 cors 配置可以做跨域控制,那可以防止 CSRF 攻击吗
    • 【Q387】http2 中 server push 与 websocket 有什么区别
    • 【Q388】简述下 TLS 握手过程
    • 【Q390】简单介绍一下 RSA 算法
    • 【Q391】https 层可以做哪些性能优化
    • 【Q392】ECDHE 与 RSA 有何区别
    • 【Q394】https 中证书的格式化信息有哪些
    • 【Q395】https 连接时如何保证证书没被废弃掉
    • 【Q396】TLS1.3 相比 TLS1.2 有何不同
    • 【Q398】在 wireshark 中如何抓包 https/http2
    • 【Q401】在 TLS 层如何优化网站性能
    • 【Q419】DV、OV、EV 类的证书有何区别
    • 【Q420】https 中是如何进行身份认证的
    • 【Q431】http 状态码 401 和 403 有什么区别
    • 【Q434】当服务器资源返回 304 时与那些 HTTP 响应头有关
    • 【Q442】http3 解决了什么问题
    • 【Q554】SameSite Cookie 有哪些值,是如何预防 CSRF 攻击的
    • 【Q560】Data URL 的应用场景及如何生成
    • 【Q578】HTTP 响应头 cache-control: s-maxage=0 是什么意思
    • 【Q579】http 缓存控制中 Cach-Control 为 public 与 private 有何区别
    • 【Q580】http 方法 get 与 post 有何区别
    • 【Q583】http 状态码 204 使用在什么场景
    • 【Q584】现代前端应用应如何配置 HTTP 缓存机制
    • 【Q585】如何确保你们的项目开启了 gzip
    • 【Q586】HTTP 有哪些常见的请求头和响应头
    • 【Q588】什么是 HSTS
    • 【Q589】http 中 referer 请求头是做什么的
    • 【Q616】在 nginx 中如何配置 HTTP 协商缓存
    • 【Q617】什么是 base64 与 URL Safe base64
    • 【Q639】HTTP 与 TCP 中的 keep-alive 各是什么
    • 【Q650】http 各个版本间各有什么改进
    • 【Q651】简述 http3,http3 解决了什么问题
    • 【Q652】http2 中 Stream 与 Frame 是什么关系
    • 【Q658】什么是点击劫持(ClickJacking),如何预防
    • 【Q687】https 如何被抓包,原理是什么
    • 【Q696】OSCP Stapling 是什么
    • 【Q700】http client 中如何得知已接收完所有响应数据
    • 【Q738】websocket 和短轮询有什么区别
    • 【Q741】我们上传图片为 Blob/File 对象时,是如何向服务器端传送数据的
    • 汇总
    • 【Q009】如何实现一个元素的水平垂直居中
    • 【Q017】css 如何实现左侧固定300px,右侧自适应的布局
    • 【Q034】如何实现一个 loading 动画
    • 【Q175】如何使用 css 写一个魔方
    • 【Q178】如何使用 css 写一个有 3D 效果的立方体
    • 【Q184】有没有使用过 css variable,它解决了哪些问题
    • 【Q185】谈谈你对 styled-component 的看法
    • 【Q190】使用 CSS 如何画一个三角形
    • 【Q279】display: inline 的元素设置 margin 和 padding 会生效吗
    • 【Q280】html 的默认 display 属性是多少
    • 【Q281】响应式布局需要注意哪一些
    • 【Q282】对一个非定长宽的块状元素如何做垂直水平居中
    • 【Q306】如何实现左右固定,中间自适应布局
    • 【Q307】如何实现表格单双行条纹样式
    • 【Q309】简述下 css specificity
    • 【Q315】'+' 与 '~' 选择器有什么不同
    • 【Q317】有哪些 css 属性不能展示动画效果
    • 【Q319】css 动画与 js 动画哪个性能更好
    • 【Q321】 css 中属性选择器及类选择器的权重哪个高
    • 【Q324】为什么会发生样式抖动
    • 【Q334】position: sticky 如何工作,适用于哪些场景
    • 【Q335】什么是层叠上下文 (stacking contect),谈谈对它的理解
    • 【Q336】你用 css 实现过什么不错的效果
    • 【Q337】你做前端有多少时间花在写 css 上
    • 【Q339】伪类与伪元素有什么区别
    • 【Q364】css 如何匹配前N个子元素及最后N个子元素
    • 【Q370】如何使用 CSS 实现网站的暗黑模式 (Dark Mode)
    • 【Q444】介绍 CSS 隐藏页面中某个元素的几种方法
    • 【Q465】css 如何实现响应式布局大屏幕三等分、中屏幕二等分、小屏幕一等分
    • 【Q468】前端开发中如何进行多主题配置
    • 【Q471】如何自定义滚动条的样式
    • 【Q478】如何实现容器中子元素三个三列布局,子元素两个则两列布局
    • 【Q481】网站设置字体时,如何设置优先使用系统默认字体
    • 【Q485】写 CSS 时如何避免命名样式冲突
    • 【Q492】CSS 如何设置方格背景
    • 【Q496】如何更好地给元素设置 z-index
    • 【Q504】画一个 100x100 的方框,其中文字可以正常换行,文字过多超过方框显示滚动条
    • 【Q506】Grid 布局如何实现类似 flex: row-reverse
    • 【Q516】HTML 标签有哪些行内元素
    • 【Q517】CSS如何设置一行超出显示省略号
    • 【Q518】CSS如何设置多行超出显示省略号
    • 【Q525】flex 布局中 order 有何作用
    • 【Q526】flex 布局中 align-content 与 align-items 有何区别
    • 【Q531】子元素垂直居中,并且该子元素的长度/宽度为父容器宽度(width)一半的正方形
    • 【Q532】简述 css 中 position 的值
    • 【Q533】什么是 BFC
    • 【Q534】CSS 如何实现固定长宽比的元素
    • 【Q535】rem、em、vw、vh 的值各是什么意思
    • 【Q536】normalize.css 与 reset.css 又何区别
    • 【Q537】line-height 的值分别取 [2, 2em, 200%] 有什么区别?
    • 【Q547】某元素的 fontSize: 2rem; lineHeight: 1.5em; 此时 lineHeight 为多少像素
    • 【Q553】Grid 布局的优势在哪里
    • 【Q557】如何实现三列均分布局
    • 【Q563】什么是媒体查询,JS 可以监听媒体查询吗
    • 【Q564】z-index: 999 元素一定会置于 z-index: 0 元素之上吗
    • 【Q608】请简介 CSS 的盒模型
    • 【Q620】CSS 有哪些选择器
    • 【Q621】CSS 有哪些伪类与伪元素选择器
    • 【Q654】css加载会阻塞DOM树的解析和渲染吗
    • 【Q669】在 CSS 中,使用 rem 作为单位有何缺点
    • 【Q695】Flex 布局中的 flex-basis 与 width 有何区别
    • 汇总
    • 【Q001】网站开发中,如何实现图片的懒加载
    • 【Q160】如何设置一个 cookie
    • 【Q161】如何删除一个 cookie
    • 【Q210】如何判断当前环境是移动端还是PC端
    • 【Q214】input 中监听值的变化是在监听什么事件
    • 【Q215】什么是跨域,如何解决跨域问题
    • 【Q267】CSP 是干什么用的了
    • 【Q284】prefetch 与 preload 的区别是什么
    • 【Q295】fetch 中 credentials 指什么意思,可以取什么值
    • 【Q311】当 cookie 没有设置 maxage 时,cookie 会存在多久
    • 【Q313】在浏览器中如何获取剪切板中内容
    • 【Q362】js 动画和 css 动画那个性能比较好
    • 【Q374】简单介绍 requestIdleCallback 及使用场景
    • 【Q411】如何找到当前页面出现次数最多的HTML标签
    • 【Q425】什么是层叠上下文 (stacking context)
    • 【Q430】如何把 DOM 转化为图片
    • 【Q437】浏览器的剪切板中如何监听复制事件
    • 【Q439】JSONP 的原理是什么,如何实现
    • 【Q446】如何实现页面文本不可复制
    • 【Q448】异步加载 JS 脚本时,async 与 defer 有何区别
    • 【Q454】load 事件与 DomContentLoaded 事件的先后顺序
    • 【Q455】React/Vue 中的 router 实现原理如何
    • 【Q463】前端如何实现文件上传功能
    • 【Q472】什么是 HTML 的实体编码 (HTML Entity Encode)
    • 【Q493】如何取消请求的发送
    • 【Q542】DOM 中如何阻止事件默认行为,如何判断事件否可阻止?
    • 【Q543】什么是事件冒泡和事件捕获
    • 【Q544】什么是事件委托,e.currentTarget 与 e.target 有何区别
    • 【Q545】关于事件捕获和冒泡,以下代码输出多少
    • 【Q546】浏览器中 cookie 有哪些字段
    • 【Q548】DOM 中 Element 与 Node 有何区别
    • 【Q554】SameSite Cookie 有哪些值,是如何预防 CSRF 攻击的
    • 【Q555】sessionStorage与localStorage有何区别
    • 【Q556】如何封装一个支持过期时间的 localStorage
    • 【Q558】如何统计当前页面出现的所有标签
    • 【Q559】如何监听 localStorage 的变动
    • 【Q560】Data URL 的应用场景及如何生成
    • 【Q565】浏览器中事件有哪些属性与方法
    • 【Q570】浏览器中如何读取二进制信息
    • 【Q595】React 中监听 input 的 onChange 事件的原生事件是什么
    • 【Q596】在浏览器中点击 a 标签保存为文件如何做
    • 【Q646】如何禁止打开浏览器控制台
    • 【Q667】简述下 WebWorker,它如何进行通信
    • 【Q671】浏览器中监听事件函数 addEventListener 第三个参数有那些值
    • 【Q675】浏览器中 Frame 与 Event Loop 的关系是什么
    • 【Q726】浏览器中如何使用原生的 ESM
    • 【Q755】简述 WebWorker API
    • 汇总
    • 【Q001】网站开发中,如何实现图片的懒加载
    • 【Q019】浏览器中如何实现剪切板复制内容的功能
    • 【Q126】localhost:3000 与 localhost:5000 的 cookie 信息是否共享
    • 【Q159】什么是 CSRF 攻击
    • 【Q313】在浏览器中如何获取剪切板中内容
    • 【Q349】如何把 json 数据转化为 demo.json 并下载文件
    • 【Q374】简单介绍 requestIdleCallback 及使用场景
    • 【Q461】如何计算白屏时间和首屏时间
    • 【Q464】什么是重排重绘,如何减少重拍重绘
    • 【Q469】HTML 中的 input 标签有哪些 type
    • 【Q470】什么是 Data URL
    • 【Q472】什么是 HTML 的实体编码 (HTML Entity Encode)
    • 【Q476】textarea 如何禁止拉伸
    • 【Q477】在 Canvas 中如何处理跨域的图片
    • 【Q493】如何取消请求的发送
    • 【Q516】HTML 标签有哪些行内元素
    • 【Q530】HTML 中有哪些语义化标签
    • 【Q582】什么是 URL 编码 (URL Encode)
    • 汇总
    • 【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
    • 【Q757】如何解决深拷贝问题中的循环引用
    • 汇总
    • 【Q676】在 Typescript 中如何实现类型标记 Pick 与 Omit
    • 【Q692】什么是协变与逆变
    • 【Q693】在 ts 中如何实现 Partial
    • 【Q694】在 ts 中什么是 infer,并实现 Parameters 与 ReturnType
    • 【Q706】typescript 中 interface 与 type 有何区别
    • 【Q707】请简述 typescript 中的 infer
    • 汇总
    • 【Q008】当新入职一家公司时,如何快速搭建开发环境并让应用跑起来
    • 【Q010】了解 React 中的 ErrorBoundary 吗,它有那些使用场景
    • 【Q013】有没有使用过 react hooks,它带来了那些便利
    • 【Q014】如何使用 react hooks 实现一个计数器的组件
    • 【Q021】React 中,cloneElement 与 createElement 各是什么,有什么区别
    • 【Q038】使用 react 实现一个通用的 message 组件
    • 【Q066】如何使用 react hooks 实现 useFetch 请求数据
    • 【Q067】react 如何使用 render prop component 请求数据
    • 【Q068】React Portal 有哪些使用场景
    • 【Q069】什么是 virtual DOM,它的引入带了什么好处
    • 【Q071】react 与 vue 数组中 key 的作用是什么
    • 【Q092】react 中 ref 是干什么用的,有哪些使用场景
    • 【Q100】如何使用 react/vue 实现一个 message API
    • 【Q142】react hooks 中如何模拟 componentDidMount
    • 【Q146】如果使用 SSR,可以在 created/componentWillMount 中访问 localStorage 吗
    • 【Q151】react hooks 如何替代或部分替代 redux 功能
    • 【Q152】如何实现一个 react hook,你有没有自己写过一个
    • 【Q154】在 react/vue 中数组是否可以以在数组中的次序为 key
    • 【Q164】React 中 fiber 是用来做什么的
    • 【Q211】React hooks 中 useCallback 的使用场景是什么
    • 【Q235】useEffect 中如何使用 async/await
    • 【Q271】react hooks 的原理是什么
    • 【Q277】redux 解决什么问题,还有什么其他方案
    • 【Q278】为什么不能在表达式里面定义 react hooks
    • 【Q367】redux 和 mobx 有什么不同
    • 【Q368】关于 React hooks 的 caputre value,以下输出多少
    • 【Q369】在 React 项目中 immutable 是优化性能的
    • 【Q371】在 redux 中如何发送请求
    • 【Q375】在 redux 中如何写一个记录状态变更的日志插件
    • 【Q378】React 在 setState 时发生了什么
    • 【Q380】如何设计一个UI组件库
    • 【Q403】React 中的 dom diff 算法如何从 O(n3) 优化到 O(n) 的
    • 【Q404】在 React 应用中如何排查性能问题
    • 【Q408】React 17.0 有什么变化
    • 【Q452】现代框架如 React、Vue 相比原生开发有什么优势
    • 【Q455】React/Vue 中的 router 实现原理如何
    • 【Q466】在 SSR 项目中如何判断当前环境时服务器端还是浏览器端
    • 【Q497】React.setState 是同步还是异步的
    • 【Q498】什么是服务器渲染 (SSR)
    • 【Q499】在 React 中如何实现代码分割 (code splitting)
    • 【Q500】在 React 中如何做好性能优化
    • 【Q501】在 React 中发现状态更新时卡顿,此时应该如何定位及优化
    • 【Q502】当多次重复点击按钮时,以下三个 Heading 是如何渲染的
    • 【Q539】Javascript 数组中有那些方法可以改变自身,那些不可以
    • 【Q552】关于 setState 以下代码的输出
    • 【Q590】React 中什么是合成事件
    • 【Q592】前端项目中有哪些副作用
    • 【Q593】React/Vue 中受控组件与不受控组件的区别
    • 【Q595】React 中监听 input 的 onChange 事件的原生事件是什么
    • 【Q600】在 React hooks 中如何模拟 forceUpdate
    • 【Q611】React/Vue 中兄弟组件如何进行通信
    • 【Q612】React.memo 中是如何实现性能优化的
    • 【Q614】immer 的原理是什么,为什么它的性能更高
    • 【Q615】React.useMemo 与 React.useCallback 是如何进行性能优化的
    • 【Q624】同一页面三个组件请求同一个 API 发送了三次请求,如何优化
    • 【Q627】如何优化 React 项目的性能
    • 【Q653】useLayoutEffect 和 useEffect 有什么区别
    • 【Q659】在 React Hooks 中实现 usePreviouseValue 取上次渲染的值
    • 【Q699】在虚拟 DOM 中进行 diff 算法时,介绍当根据 key 对数组进行重用时的算法
    • 【Q474】在 react 中,以下父子组件的 useEffect/useLayoutEffect 顺序如何
    • 【Q749】React18 有哪些新特性
    • 【Q750】React19 有哪些新特性
    • 汇总
    • 【Q008】当新入职一家公司时,如何快速搭建开发环境并让应用跑起来
    • 【Q011】vue3.0 中为什么要使用 Proxy,它相比以前的实现方式有什么改进
    • 【Q071】react 与 vue 数组中 key 的作用是什么
    • 【Q089】vue 中 v-if 和 v-show 的区别是什么
    • 【Q090】vue 中 computed 的原理是什么
    • 【Q091】vue-loader 的实现原理是什么
    • 【Q100】如何使用 react/vue 实现一个 message API
    • 【Q146】如果使用 SSR,可以在 created/componentWillMount 中访问 localStorage 吗
    • 【Q154】在 react/vue 中数组是否可以以在数组中的次序为 key
    • 【Q380】如何设计一个UI组件库
    • 【Q449】vue3 中,如何监听数组的变化
    • 【Q450】Vue 中 nextTick 的实现原理是什么
    • 【Q452】现代框架如 React、Vue 相比原生开发有什么优势
    • 【Q455】React/Vue 中的 router 实现原理如何
    • 【Q592】前端项目中有哪些副作用
    • 【Q593】React/Vue 中受控组件与不受控组件的区别
    • 【Q611】React/Vue 中兄弟组件如何进行通信
    • 【Q699】在虚拟 DOM 中进行 diff 算法时,介绍当根据 key 对数组进行重用时的算法
    • 汇总
    • 【Q637】如何使用正则匹配一个汉字
    • 【Q660】实现一个 render/template 函数,可以用以渲染模板
    • 汇总
    • 【Q284】prefetch 与 preload 的区别是什么
    • 【Q399】实现一个 once 函数,记忆返回结果只执行一次
    • 【Q626】如何压缩前端项目中 JS 的体积
    • 【Q627】如何优化 React 项目的性能
    • 【Q670】如何提高首屏渲染时间?
    • 【Q686】网站性能优化中,如何对小图片进行优化
    • 汇总
    • 【Q003】什么是防抖和节流,他们的应用场景有哪些
    • 【Q022】如何实现一个简单的 Promise
    • 【Q031】js 中如何实现 bind
    • 【Q088】如何实现 promise.map,限制 promise 并发数
    • 【Q198】如何实现类似 lodash.get 函数
    • 【Q202】如何实现一个深拷贝 (cloneDeep)
    • 【Q228】如何实现一个 flatMap 函数 (头条)
    • 【Q240】如何实现一个 async/await
    • 【Q249】使用 js 实现一个 lru cache
    • 【Q312】如何实现 Promise.race
    • 【Q399】实现一个 once 函数,记忆返回结果只执行一次
    • 【Q411】如何找到当前页面出现次数最多的HTML标签
    • 【Q412】对以下字符串进行压缩编码
    • 【Q421】如何实现一个无限累加的 sum 函数
    • 【Q429】实现一个函数用来解析 URL 的 querystring
    • 【Q435】JS 如何实现一个 sleep/delay 函数
    • 【Q436】如何实现一个 sample 函数,从数组中随机取一个元素
    • 【Q439】JSONP 的原理是什么,如何实现
    • 【Q440】实现一个函数用来对 URL 的 querystring 进行编码
    • 【Q443】实现一个数组扁平化的函数 flatten
    • 【Q447】如何实现一个数组洗牌函数 shuffle
    • 【Q489】如何实现一个函数 lodash.merge
    • 【Q491】如何实现一个 Promise.all
    • 【Q505】JS 中基础数据类型有哪些
    • 【Q561】实现一个 inherits 函数进行继承
    • 【Q567】如何逆序一个字符串
    • 【Q594】给数字添加千位符
    • 【Q598】如何实现一个深比较的函数 deepEqual
    • 【Q603】在 JS 中如何监听 Object 某个属性值的变化
    • 【Q607】关于字符串编码解码进阶
    • 【Q613】如何使用 JS 实现一个发布订阅模式
    • 【Q619】使用 JS 如何生成一个随机字符串
    • 【Q623】如何判断一个数值为整数
    • 【Q625】简述 koa 的中间件原理,手写 koa-compose 代码
    • 【Q628】实现一个函数 maxBy,根据给定条件找到最大的数组项
    • 【Q629】实现一个函数 max,找到数组中最大的一个值/两个值/N个值
    • 【Q644】统计字符串中出现次数最多的字符及次数
    • 【Q635】请输出 100 以内的菲波那切数列
    • 【Q637】如何使用正则匹配一个汉字
    • 【Q638】如何把字符串全部转化为小写格式
    • 【Q640】如何实现数组函数 reduce
    • 【Q643】如何实现 chunk 函数,数组进行分组
    • 【Q644】实现一个异步的 sum/add
    • 【Q645】随机生成六位数的手机验证码(重复/不可重复)
    • 【Q649】如何去除字符串首尾空白字符
    • 【Q655】实现 intersection,取数组交集
    • 【Q657】实现一个 composeLeft/flow(从左向右) 函数,进行函数合成
    • 【Q660】实现一个 render/template 函数,可以用以渲染模板
    • 【Q663】给定一个数值,给出它在 IEEE754 的表示,如符号位、指数位与分数位
    • 【Q666】实现二进制与十进制的互相转化的两个函数
    • 【Q673】求给定数组中 N 个数相加之和为 sum 所有可能集合
    • 【Q677】如何实现一个 sampleSize 函数,从数组中随机取N个元素
    • 【Q678】实现一个函数 keyBy
    • 【Q679】实现一个函数 groupBy
    • 【Q681】求正序增长的正整数数组中,其和为 N 的两个数
    • 【Q683】FizzBuzz,是否能被3或5整除
    • 【Q684】实现一个函数 camelCase,对变量转化为驼峰命名
    • 【Q689】JS 中如何原生实现 instanceOf
    • 【Q690】如何根据 random5 随机生成 [0, 5],生成一个函数 random7?
    • 【Q691】如何实现一个 ORM 类似的 find 链式调用
    • 【Q701】实现函数 promisify,把回调函数改成 promise 形式
    • 【Q747】如何实现一个 omit/omitBy 函数
    • 【Q743】实现 batchFn 函数,可以批量执行函数
    • 【Q754】实现 LazyMan
    • 汇总
    • 【Q118】有没有读过 koa 的源码,什么是洋葱模型呢
    • 【Q123】如何监控文件的变动
    • 【Q139】在 Node 应用中如何利用多核心CPU的优势
    • 【Q140】Node 中 cluster 的原理是什么
    • 【Q204】Node 中如何判断一个路径是文件还是文件夹
    • 【Q237】以下代码,koa 会返回什么数据
    • 【Q239】Node 如何进行进程间通信
    • 【Q242】有没有用过 continuous local storage,用在了哪里
    • 【Q244】Promise 在异步资源的生命周期 (async_hooks) 中是如何被销毁的
    • 【Q247】在 node 中如何监听异步资源的生命周期
    • 【Q248】测试中 TDD 与 BDD 有什么区别
    • 【Q251】node --max-old-space-size=4096 是什么意思
    • 【Q256】如何理解 Node 的异步非阻塞IO
    • 【Q264】当 Node 应用发生 gc 时,如何监控
    • 【Q265】Node 应用中如何查看 gc 的日志
    • 【Q274】如何获取你们 Node 项目的 cpu profile 快照
    • 【Q289】Node 中循环引用会发生什么
    • 【Q290】Node 中 require 时发生了什么
    • 【Q291】简述 node/v8 中的垃圾回收机制
    • 【Q300】node 中 exec,fork 与 spawn 有何区别
    • 【Q308】node 中 dns.resolve 及 dns.lookup 有什么区别
    • 【Q310】Node 中 require json 文件数据时,如何当文件更新时,重新 require
    • 【Q316】node 中如何查看函数异步调用栈
    • 【Q322】有没有接触过 fs-extra,它是解决什么问题的
    • 【Q347】在 node 中如何开启 https
    • 【Q348】node 中 module.exports 与 exports 有什么区别
    • 【Q350】如何实现一个 timeout 的中间件
    • 【Q351】如何得知目前 node 版本的 v8 版本号
    • 【Q354】在 node 中如何判断一个对象是 stream
    • 【Q356】在 node 端如何向服务器上传文件
    • 【Q365】node 中 nextTick 与 setTimeout 有什么区别
    • 【Q413】如何在生产环境部署一个 Node 应用
    • 【Q484】express 中间件的原理是什么
    • 【Q512】如何检测并避免循环依赖
    • 【Q519】如何发布一个全局可执行命令的 npm package
    • 【Q576】如何正确得知某张图片的 MIME 格式
    • 【Q604】判断以下路由,将会响应哪一个路由
    • 【Q609】请简述重新登录 refresh token 的原理
    • 【Q625】简述 koa 的中间件原理,手写 koa-compose 代码
    • 【Q631】在 Node 中如何读写文件
    • 【Q632】在 Node 中如何发送请求
    • 【Q633】Node 中服务端框架如何解析 http 的请求体 body
    • 【Q642】在 Node 中流 (stream) 分为几类,有哪些应用场景
    • 【Q664】请简述下 Node 与浏览器环境中的事件循环
    • 【Q674】在 Node 中如何读取可读流的内容
    • 【Q680】在 Node 中如何读取大文件的内容
    • 【Q698】有没有使用过 Node 的 inspect 这个核心模块
    • 汇总
    • 【Q072】webpack 是用来做什么的,原理是什么
    • 【Q073】webpack 中的 loader 的作用是什么
    • 【Q074】有没有自己写过一个webpack的loader
    • 【Q075】webpack 中plugin的作用是什么,有没有自己写过
    • 【Q077】使用 webpack 时如何优化项目体积
    • 【Q078】webpack 中什么是 HMR,原理是什么
    • 【Q080】使用 webpack 打包时,如何更好地利用 long term cache
    • 【Q082】随着 http2 的发展,webpack 有没有更好的打包方案
    • 【Q086】Tree Shaking 的原理是什么
    • 【Q091】vue-loader 的实现原理是什么
    • 【Q203】对于已经 import 但未实际使用的模块使用 webpack 还会对它打包吗?
    • 【Q205】Code Splitting 的原理是什么
    • 【Q587】使用 webpack 如何分包
    • 【Q626】如何压缩前端项目中 JS 的体积
    • 【Q705】webpack 的 runtime 做了什么事情
    • 【Q708】webpack 中的 code spliting 是如何动态加载 chunk 的?
    • 【Q710】打包器(webpack/rollup) 如何将打包后的 js 资源注入 html 中
    • 【Q711】打包器(webpack/rollup) 如何加载 json、image 等非 Javascript 资源
    • 【Q712】打包器(webpack/rollup) 如何加载 style 样式资源
    • 【Q713】如何提升 webpack 构建资源的速度
    • 【Q729】如何分析前端打包体积
    • 【Q739】webpack 中是如何处理 new URL 资源的
    • 【Q745】webpack 的打包流程是什么样的
    • 汇总
    • 【Q008】当新入职一家公司时,如何快速搭建开发环境并让应用跑起来
    • 【Q083】网站性能优化都有哪些点
    • 【Q094】你们的前端代码上线部署一次需要多长时间,需要人为干预吗
    • 【Q102】有没有用 npm 发布过 package,如何发布
    • 【Q137】js 代码压缩 minify 的原理是什么
    • 【Q153】权限设计中的 RABC 是指什么
    • 【Q156】如何进行代码质量检测
    • 【Q189】performance API 中什么指标可以衡量首屏时间
    • 【Q191】什么是 Open Graph 协议,用来做什么
    • 【Q192】简述你们前端项目中资源的缓存配置策略
    • 【Q193】如何加速 npm install
    • 【Q194】npm i 与 npm ci 的区别是什么
    • 【Q195】package-lock.json 有什么作用,如果项目中没有它会怎么样,举例说明
    • 【Q200】前端如何进行多分支部署
    • 【Q236】主域名的 SEO 是否比二级域名要更好
    • 【Q250】刚刚启动了一个服务,如何知道这个服务对应的端口号是多少
    • 【Q255】图片防盗链原理是什么
    • 【Q268】你如何看待 serverless
    • 【Q269】什么是 XSS 攻击,如何避免
    • 【Q272】如何查看你们 JS 项目中应采用的 node 版本
    • 【Q276】如何查看 node_modules(某一文件夹) 的体积有多大
    • 【Q292】peerDependency 是为了解决什么问题
    • 【Q293】semver 指什么,试图解释一下
    • 【Q294】optionalDependencies 的使用场景是什么
    • 【Q296】package-lock.json 与 yarn.lock 有什么区别
    • 【Q373】如何为你们的前端项目选择状态管理器
    • 【Q386】什么是浏览器的关键渲染路径
    • 【Q405】你使用过哪些前端性能分析工具
    • 【Q415】你有没有重客户端状态前端应用的经验
    • 【Q423】什么是安全的正则表达式
    • 【Q428】在 nginx 中如何配置负载均衡
    • 【Q467】前端打包时 cjs、es、umd 模块有何不同
    • 【Q486】什么是前端工程化
    • 【Q488】JWT 的原理是什么
    • 【Q498】什么是服务器渲染 (SSR)
    • 【Q503】Core Web Vitals 是什么,它有哪些指标
    • 【Q508】dependencies 与 devDependencies 有何区别
    • 【Q509】如何确认你们项目是否依赖某一个依赖项
    • 【Q510】当你引入某一个依赖项时,你引入的是该依赖下的哪一个文件
    • 【Q511】npm workspaces 解决了什么问题
    • 【Q520】如何为一个项目指定 node 版本号
    • 【Q521】什么是 semver,~1.2.3 与 ^1.2.3 的版本号范围是多少
    • 【Q522】package.json 中 main/module/browser/exports 字段有何区别
    • 【Q523】npm publish 时 npm script 的生命周期
    • 【Q524】前端项目每次 npm install 之后需要执行一些处理工作,应该怎么办
    • 【Q538】你是如何保障你们项目质量的
    • 【Q576】如何正确得知某张图片的 MIME 格式
    • 【Q584】现代前端应用应如何配置 HTTP 缓存机制
    • 【Q587】使用 webpack 如何分包
    • 【Q597】引入 BFF 层的优势在哪里
    • 【Q624】同一页面三个组件请求同一个 API 发送了三次请求,如何优化
    • 【Q626】如何压缩前端项目中 JS 的体积
    • 【Q636】你们项目中使用了哪些依赖/第三方库
    • 【Q646】如何禁止打开浏览器控制台
    • 【Q670】如何提高首屏渲染时间?
    • 【Q697】npm 执行命令传递参数时,为何需要双横线
    • 【Q700】http client 中如何得知已接收完所有响应数据
    • 【Q709】core-js 是做什么用的?
    • 【Q714】如何处理白屏错误页的监控的?
    • 【Q715】简述 npm script 的生命周期
    • 【Q716】git hooks 原理是什么
    • 【Q717】如何检测出你们安装的依赖是否安全
    • 【Q718】请简述下 eslint 的作用
    • 【Q719】在项目中,如何平滑升级 npm 包
    • 【Q720】请描述 node_modules 的目录结构(拓扑结构)
    • 【Q721】npm 第三方库需要提交 lockfile 吗
    • 【Q722】请问什么是 CICD
    • 【Q723】如何使用 docker 部署前端
    • 【Q725】pnpm 有什么优势
    • 【Q726】浏览器中如何使用原生的 ESM
    • 【Q727】如何将 CommonJS 转化为 ESM
    • 【Q728】如何对 npm package 进行发包
    • 【Q730】什么是 AST,及其应用
    • 【Q731】简述 browserslist 的意义
    • 【Q732】简述 bundless 的优势与不足
    • 【Q733】简述 npm cache
    • 【Q734】如何修复某个 npm 包的紧急 bug
    • 【Q735】前端如何进行高效的分包
    • 【Q736】前端如何对分支环境进行部署
    • 【Q740】vite 中是如何处理 new URL 资源的
    • 【Q748】在 babel 编译为低版本 ES 时,为何能够编译可选链之类语法,但无法编译 API
    • 汇总
    • 汇总
      • 【Q002】当 ping 一个 IP 地址时发生了什么
      • 【Q025】简述 TCP socket 建立的过程
      • 【Q030】linux 中如何打印所有网络接口
      • 【Q045】如何把一个 CIDR 地址转化为IP地址范围段
      • 【Q054】简述TCP 的三次握手
      • 【Q087】什么是 CNAME 记录和 A 记录
      • 【Q120】TCP 是如何保证可靠性的
      • 【Q127】vpn 的原理是什么
      • 【Q134】ssh 的原理是什么
      • 【Q173】简述 UDP socket 建立的过程
      • 【Q174】TCP 三次握手发生在 socket 建立的哪一步
      • 【Q182】简述 TCP 的四次挥手,三次挥手可以吗
      • 【Q183】tcp 中 time_wait 堆积过多会有什么问题,为什么它超时时间这么长
      • 【Q360】localhost 与 127.0.0.1 有什么区别
      • 【Q376】TCP 四次挥手时为什么需要 2MSL
      • 【Q390】简单介绍一下 RSA 算法
      • 【Q639】HTTP 与 TCP 中的 keep-alive 各是什么
      • 汇总
      • 【Q004】如何获取一个进程的内存并监控
      • 【Q028】在linux中如何获取登录的用户
      • 【Q030】linux 中如何打印所有网络接口
      • 【Q037】linux 有哪些发行版,你最喜欢哪一个
      • 【Q041】CoW 策略指什么,docker 中有哪些应用
      • 【Q043】如何使用命令查看一个文件有多少字符以及多少行
      • 【Q055】如何在 linux 中打印所有环境变量
      • 【Q070】如何用 linux 命令输出文件的特定行
      • 【Q096】cron 表达式 (* 10 * * *) 会如何触发
      • 【Q097】cron 表达式 (30 10 * * *) 会如何触发
      • 【Q098】在 linux 中如何查看 cron 执行的情况
      • 【Q114】如何查看一个文件的 inode number
      • 【Q115】文件系统中 mtime、ctime 和 atime 指什么,都有什么不同
      • 【Q129】shell 中 ${} 与 $() 各是什么意思
      • 【Q145】如何判断端口是否可达
      • 【Q162】如何禁止服务器被 ping
      • 【Q171】在服务器内如何得知自己的公网IP
      • 【Q179】ssh 如何设置 IP whiteList
      • 【Q199】如何判断文件中的换行符是 LF 还是 CRLF
      • 【Q276】如何查看 node_modules(某一文件夹) 的体积有多大
      • 【Q297】服务器的平均负载如何计算
      • 【Q302】多服务器的系统时间不一致如何解决
      • 【Q407】什么是 CPU 缓存,如何查看缓存命中率
      • 【Q417】什么是 exit code
      • 【Q418】什么是 coredump,如何配置与分析
      • 汇总
      • 【Q099】git 如何查看某个文件的提交历史
      • 【Q344】如何列出所有已合并到 master 的分支并删除
      • 【Q414】git 如何添加与删除一个 submodule
      • 汇总
      • 【Q044】如何使用vim查看文件有多少个字符以及多少行
      • 汇总
      • 【Q048】如何实现一个优先级队列
      • 【Q061】如何判断两个链表是否相交
      • 【Q093】如何实现一个 LRU
      • 【Q176】如何在数组中找出三个数之和为N
      • 【Q186】写一个关于全排列,全组合的函数
      • 【Q188】大数乘法和大数加法
      • 【Q288】如何求数组中的 TOP k
      • 【Q412】对以下字符串进行压缩编码
      • 【Q673】求给定数组中 N 个数相加之和为 sum 所有可能集合
      • 【Q681】求正序增长的正整数数组中,其和为 N 的两个数
      • 【Q682】100层楼,两个玻璃球,求最少多少次测出能摔碎玻璃球的楼层
      • 【Q690】如何根据 random5 随机生成 [0, 5],生成一个函数 random7?
      • 汇总
      • 【Q049】什么是守护进程
      • 【Q053】什么是对象存储,与块存储和文件存储有什么区别
      • 【Q063】SIGINT SIGTERM SIGKILL 有什么区别
      • 【Q065】有没有使用过 oss,对象存储相比块存储和文件存储有什么优缺点
      • 【Q106】什么是IO多路复用
      • 【Q115】文件系统中 mtime、ctime 和 atime 指什么,都有什么不同
      • 【Q123】如何监控文件的变动
      • 【Q138】一个守护进程的创建步骤是什么,如何用 C 语言创建
      • 【Q140】Node 中 cluster 的原理是什么
      • 【Q170】什么是文件描述符 (file descriptor)
      • 【Q254】进程与线程的区别是什么
      • 【Q298】如何创建一个进程
      • 【Q417】什么是 exit code
      • 【Q418】什么是 coredump,如何配置与分析
      • 【Q451】同一进程的线程共享那些资源
      • 【Q672】什么是原码、补码与反码
      • 【Q724】软链接和硬链接有何区别
      • 汇总
      • 【Q328】简述 bloomfilter,及它的使用场景是什么
      • 【Q329】什么是一致性哈希,可以解决什么问题
      • 【Q343】如何查找地图中某个点两公里内的餐厅
      • 汇总
      • 【Q314】source 与 sh 执行脚本时有何区别
      • 【Q697】npm 执行命令传递参数时,为何需要双横线
      • 汇总
    • 汇总
      • 【Q037】linux 有哪些发行版,你最喜欢哪一个
      • 【Q060】你们项目中的计划任务是如何组织的
      • 【Q083】网站性能优化都有哪些点
      • 【Q094】你们的前端代码上线部署一次需要多长时间,需要人为干预吗
      • 【Q103】你在工作中遇到最有挑战的事情是什么
      • 【Q104】你在工作中遇到最受挫折的事情是什么
      • 【Q105】你为什么从上家公司离职
      • 【Q113】如何看待 toB 与 toC
      • 【Q216】你对未来的工作有什么期待
      • 【Q217】你对未来的三年规划和五年规划是什么样的
      • 【Q218】当你入职后发现压力过大怎么办
      • 【Q219】工作中你有没有很佩服的人
      • 【Q221】作为技术负责人,你每天的工作是什么样的
      • 【Q225】你相比去年,有哪些成长
      • 【Q227】你如何看待996
      • 【Q231】你周末都喜欢做些什么
      • 【Q262】当一个排期五天的任务需要在两天后上线如何解决
      • 【Q337】你做前端有多少时间花在写 css 上
      • 【Q382】你有没有造过轮子
      • 【Q000】你最近学习了哪些新技术
      • 【Q393】作为 TL 如何管理团队
      • 【Q410】你最近看的三本书是什么
      • 【Q480】你最喜欢的三个 js 库是什么
      • 【Q618】列举 Number、String、Array、Object、Promise 有哪些 API
      • 【Q636】你们项目中使用了哪些依赖/第三方库
      • 【Q753】你是如何学习前端的
      • 汇总
    • 汇总
      • 【Q138】一个守护进程的创建步骤是什么,如何用 C 语言创建
      • 【Q163】如何创建一个线程
      • 【Q166】在C语言中,void * 是什么意思
      • 【Q167】每个指针所占的存储空间是多少
      • 【Q172】C语言中 printf 与 puts 有什么区别
      • 【Q174】TCP 三次握手发生在 socket 建立的哪一步
      • 【Q298】如何创建一个进程
      • 【Q433】在C语言中,void 是什么意思
      • 汇总
      • 【Q257】爬虫中如何实现一个调度器
      • 【Q258】如何实现一个分布式的爬虫
      • 【Q259】爬虫如何实现一个去重器
      • 【Q261】当写爬虫时,因爬取过多被禁掉 IP 怎么解决
      • 【Q460】在服务端反爬虫有哪些策略
      • 汇总
      • 【Q006】如何写一个 SQL 获取分组 top n 的数据
      • 【Q007】如何写一个 SQL 获取分组 top 1 的数据
      • 【Q024】在 postgres 中,查询时如何对 jsonb 数据格式化
      • 【Q158】数据库 postgres 与 mysql 相比有哪些优劣
      • 【Q180】当执行 SQL 语句 select * from user where id = 1 时发什么了什么
      • 【Q207】什么是隔离级
      • 【Q208】在 postgres 中如何查看慢查询语句
      • 【Q209】如何得知一条 SQL 执行的时长?
      • 【Q212】在 postgres/mysql 中如何判断当前版本是多少
      • 【Q213】什么是隔离级,都有哪些隔离级
      • 【Q222】数据库中如何查看当前的连接数
      • 【Q223】数据库查询如何更好地利用数据库缓存进行优化
      • 【Q224】误操作了一个 delete from 语句,如何恢复数据
      • 【Q226】数据库死锁是怎么产生的
      • 【Q229】在数据库中一个字段如果是字符串类型的,那应该设置哪种数据类型
      • 【Q233】一个关于并发更新的事务以及隔离级的问题
      • 【Q234】以下 SQL 语句会有什么问题 (悲观锁)
      • 【Q270】一张员工表,一个字段代表它的上级,如何查询该员工的所有上级
      • 【Q275】解释下 OLTP 与 OLAP
      • 【Q330】mysql 如何开启及查看慢查询日志
      • 【Q331】当分页10000页时数据库查询 offset 过大如何解决性能问题
      • 【Q332】当数据库进行版本升级时,如何进行数据迁移
      • 【Q333】mysql 是如何实现 MVCC 的
      • 【Q440】试着讲述数据库的几个范式
      • 【Q341】为什么在 mysql 不能够使用 = null
      • 【Q342】`A, B` 复合索引时,`A=? and B=?` 与 `B=? and A=?` 效果是否一致
      • 【Q345】postgres 中 Index Scan 与 Index Only Scan 有何区别
      • 【Q366】如何保存数据库与缓存的双写一致性
      • 【Q379】你们的后端项目的数据库索引做了哪些优化
      • 【Q381】什么是覆盖索引
      • 【Q438】数据库设计时 char 与 varchar 有什么区别
      • 【Q459】mysql 中 limit offset 过大导致查询缓慢的原因及解决方案
      • 【Q744】数据库中更新一条记录时,如何自动更新其 updated_at 字段
      • 【Q746】如何避免 SQL 攻击
      • 汇总
      • 【Q005】生产环境的某个接口报错,如何定位
      • 【Q016】后端的敏感数据在生产环境是如何配置的
      • 【Q020】如何实现一个分布式锁
      • 【Q023】websocket 服务多节点部署时会有什么问题,怎么解决
      • 【Q026】如何对接口进行压力测试
      • 【Q029】websocket 如何向特定的用户组推送消息
      • 【Q033】如何对接口进行限流
      • 【Q047】如何设计一个高并发系统
      • 【Q101】你们后端代码上线部署一次需要多长时间
      • 【Q107】什么是 Basic Auth 和 Digest Auth
      • 【Q153】权限设计中的 RABC 是指什么
      • 【Q156】如何进行代码质量检测
      • 【Q157】如何管理生产环境多个数据库的配置,如何快速连接
      • 【Q232】当有大量的文本库时,如何做一个字云
      • 【Q260】如何实现单点登录
      • 【Q286】在服务端应用中如何获得客户端 IP
      • 【Q325】关于 cors 的响应头有哪些
      • 【Q350】如何实现一个 timeout 的中间件
      • 【Q358】什么情况下会发送 OPTIONS 请求
      • 【Q363】如何获取当前系统中的在线用户数 (并发用户数)
      • 【Q379】你们的后端项目的数据库索引做了哪些优化
      • 【Q397】什么是 oauth2,它解决了什么问题
      • 【Q423】什么是安全的正则表达式
      • 【Q428】在 nginx 中如何配置负载均衡
      • 【Q432】如何给 graphql 设计合理的 Rate Limit
      • 【Q451】同一进程的线程共享那些资源
      • 【Q458】服务器CPU过高时如何排查及解决问题
      • 【Q487】OAuth 2.0 的原理是什么
      • 【Q488】JWT 的原理是什么
      • 【Q601】什么是认证与授权
      • 【Q604】判断以下路由,将会响应哪一个路由
      • 【Q609】请简述重新登录 refresh token 的原理
      • 汇总
      • 【Q008】当新入职一家公司时,如何快速搭建开发环境并让应用跑起来
      • 【Q015】你们的前端项目是如何在线上部署的
      • 【Q018】当你使用 docker 部署应用时,如何查看应用日志
      • 【Q094】你们的前端代码上线部署一次需要多长时间,需要人为干预吗
      • 【Q101】你们后端代码上线部署一次需要多长时间
      • 【Q165】什么是公有云,私有云,混合云以及多重云
      • 【Q250】刚刚启动了一个服务,如何知道这个服务对应的端口号是多少
      • 【Q400】如何评估一台服务器的 CPU 性能
      • 【Q407】什么是 CPU 缓存,如何查看缓存命中率
      • 【Q409】什么是 BNF 与 ABNF
      • 【Q413】如何在生产环境部署一个 Node 应用
      • 汇总
      • 【Q012】helm v3 中为什么要弃用 tiller
      • 【Q040】k8s 由那些组件组成
      • 【Q095】k8s 中的 QoS 有哪几种类型
      • 【Q303】在 k8s 中如何自定义 CRD 资源
      • 【Q304】service mesh 是什么,能够解决什么问题
      • 【Q323】在 k8s 中如何通过日志查看某条请求进入的 pod
      • 【Q352】k8s 中如何删除所有 Evicted 状态的 pod
      • 【Q353】k8s 中 Deployment 与 StatefulSet 有什么区别
      • 汇总
      • 【Q020】如何实现一个分布式锁
      • 【Q039】redis 的持久化方案有哪些
      • 【Q150】redis 中 zset 是什么,用作什么应用场景
      • 【Q287】在 redis 中如何查看版本号
      • 【Q326】如何发现 redis 中的 bigkey
      • 【Q366】如何保存数据库与缓存的双写一致性
      • 【Q372】redis 是如何删掉过期数据的
      • 【Q385】什么是缓存穿透,如何解决
      • 【Q406】在你们的后端应用中,redis 用在哪些场景
      • 【Q483】如何使用 redis 计算 wordcount,并计算出现频率最高的词
      • 【Q641】redis 中的哨兵与集群模式各是什么
      • 汇总
      • 【Q424】TCP 是如何进行流量控制的 (flow control)
      • 【Q426】TCP 报文中的选项 Window scale 是什么意思
      • 【Q427】TCP 报文中的 ack number 如何计算
      • 【Q662】TCP 是如何进行拥塞控制的
      • 汇总
      • 【Q041】CoW 策略指什么,docker 中有哪些应用
      • 【Q042】docker 中如何查看某个容器消耗的内存和CPU
      • 【Q046】docker 中的网络隔离是如何实现的
      • 【Q125】docker 中如何为每个容器的 cpu/memory 设限,原理是什么
      • 【Q128】构建镜像时,那几个指令会增加镜像层数
      • 【Q130】docker 如何隔离容器与宿主机的时间
      • 【Q131】在 docker 的容器中,如何访问宿主机的 localhost
      • 【Q132】如何在 docker 中运行 docker
      • 【Q143】docker-compose 部署 docker 时,如何把宿主机的环境变量注入到容器中
      • 汇总
      • 【Q051】简述一下 graphql,它的引进有什么好处
      • 【Q052】graphql 的引进有什么风险,以及性能问题
      • 【Q187】当编辑 graphql 的 query 时,如何在编辑器中自动补全
      • 【Q416】apollo-client 与 react-apollo 在前端应用中扮演什么角色
      • 【Q432】如何给 graphql 设计合理的 Rate Limit
      • 汇总
      • 【Q299】serverless 中如何得知目前扩容了多少个实例
      • 【Q320】如何衡量 serverless 的冷启动时间
      • 汇总
      • 【Q056】什么是服务降级
      • 【Q057】什么是熔断机制,微服务如何做熔断
      • 【Q058】什么是负载均衡
      • 【Q059】四层负载均衡与七层负载均衡有什么区别
      • 【Q060】你们项目中的计划任务是如何组织的
      • 【Q062】RPC 与 REST 有什么优劣
      • 【Q064】如何实现服务发现 (Service Discovery)
      • 【Q076】如何设计一个短网址生成服务
      • 【Q124】如何保证内网服务的安全性
      • 【Q135】负载均衡有哪几种方式,它们的原理是什么
      • 【Q155】当服务升级或者回退时,如何保证流量平滑切换
      • 【Q238】什么是服务雪崩,如何避免
      • 【Q246】谈谈你对微服务的理解,试着画一个脑图
      • 【Q302】多服务器的系统时间不一致如何解决
      • 【Q318】如何设计 prometheus 中的 metric
      • 【Q346】Sentry 中 `withScope`,`configureScope` 与 直接 setTags 有何区别
      • 【Q350】如何实现一个 timeout 的中间件
      • 【Q456】简述 RPC 的实现原理
      • 【Q457】如何对微服务进行拆分
      • 汇总
高级前端node【Q519】如何发布一个全局可执行命令的 npm package

如何发布一个全局可执行命令的 npm package

Issue 欢迎在 Gtihub Issue 中回答此问题: Issue 532

Author 回答者: Asarua

在package.json中增加bin,对应脚本,脚本文件头部 #! usr/local/bin node

emm,头部大概是这个,可能有拼写错误

Author 回答者: shfshanyue

TODO

【Q512】如何检测并避免循环依赖【Q576】如何正确得知某张图片的 MIME 格式

大厂面试每日一题
勤学如春起之苗,不见其增,日有所长。
辍学如磨刀之石,不见其损,日有所亏。
我的网站
  • 简历编写指南
  • 简历模板
  • 一纸简历
  • 开发者工具大全
  • 码途编辑器
  • 山月的新博客
  • 前端开发者周刊
  • 掘金返现平台
二维码
关注公众号《互联网大厂面试》,每日推送一篇大厂面试题!