简要描述下JS有哪些内置的对象
深入解析JavaScript三大对象:本地对象(Object、Array、Date等)、内置对象(Global、Math、JSON)和宿主对象(Window、Document、DOM、BOM),以及ECMA-262标准定义。
深入解析JavaScript三大对象:本地对象(Object、Array、Date等)、内置对象(Global、Math、JSON)和宿主对象(Window、Document、DOM、BOM),以及ECMA-262标准定义。
深入解析随机数生成与去重的两种方案:Set数据结构方案(现代推荐)和递归算法方案(面试常见),涵盖随机数公式、去重方法和递归终止条件。
深入解析标签页通信的六大方案:Broadcast Channel API、localStorage+storage事件、SharedWorker、Service Worker、URL Hash、IndexedDB,以及各方案的兼容性和适用场景。
深入解析WebSocket在线离线判断的三层架构:readyState连接状态、navigator.onLine网络状态、心跳机制业务状态,以及Redis存储和状态防抖最佳实践。
深入解析白屏检测的四大方案:DOM节点检测、像素采样检测、性能API检测、错误监控,以及生产环境最佳实践组合策略和常见坑点规避。
深入解析小程序性能优化核心:setData使用规范、WXML节点优化、图片资源优化,掌握少通信少节点小资源九字真言。
深入解析微信小程序登录流程:wx.login获取code、code2Session换取openid和session_key、生成自定义登录态JWT,以及安全注意事项。
深入解析SPA首屏加载慢的原因和优化方案,涵盖bundle优化、懒加载、CDN、压缩、SSR等10大优化清单和分阶段实施路线。
深入解析浏览器内核的定义、组成结构、主流内核对比(Blink、WebKit、Gecko、Trident、EdgeHTML),以及国产双核浏览器和iOS限制。
深入解析JavaScript去除字符串空格的两种方法:split+join和正则表达式,涵盖使用场景、性能对比和最佳实践。
深入解析JavaScript数组去重的多种实现方法,涵盖Set、flat、递归、对象数组去重等技巧,以及性能对比和最佳实践。
深入解析图片打点的核心技术:相对定位、百分比坐标、transform居中修正,以及Canvas高性能方案、虚拟DOM局限性和进阶场景处理。
深入解析H5直播核心链路架构、三大主流播放协议(HLS、HTTP-FLV、WebRTC)原理、MSE技术、CDN分发机制,以及不同场景的技术选型建议。
深入解析WebRTC核心技术、原生实现方案、第三方SDK对比(Agora、腾讯云TRTC、Twilio),以及适配器模式架构设计,助你快速实现企业级视频通话功能。
深入解析Blob、File、FileReader、ArrayBuffer、Base64、URL.createObjectURL()的核心概念、关系图谱、代码示例和实际应用场景。
深入解析JavaScript数组去重的多种实现方法,涵盖Set、flat、递归、对象数组去重等技巧,以及性能对比和最佳实践。
深入解析TypeScript中null和undefined的区别、strictNullChecks配置、可选链操作符、空值合并操作符等核心概念和最佳实践。
深入解析JavaScript大小写转换的三种实现方法,涵盖正则表达式、ASCII比较、分组替换等技巧,以及驼峰命名、蛇形命名等扩展应用。
深入解析TypeScript中type与interface的核心区别,涵盖扩展方式、声明合并、类型范围、映射类型等特性,以及实战选择建议。
深入解析TypeScript中const、readonly和as const的核心区别,涵盖作用域、运行时行为、使用场景和最佳实践。
深入解析TypeScript的ambient(环境声明)类型,涵盖declare关键字、.d.ts文件、全局声明、模块声明等核心概念和实战应用。
深入解析TypeScript泛型与映射类型的结合使用,涵盖Partial、Required、Pick、Omit、键名重映射等高级技巧,实现灵活的类型转换。
深入解析TypeScript泛型与readonly的结合使用,涵盖只读数组、只读属性、泛型约束、React应用等场景,实现类型安全的不可变数据处理。
深入解析如何使用正则表达式去除制表符和换行符,对比[ ]与 的区别,涵盖多种实战应用场景和常见错误规避。
深入解析TypeScript泛型的核心机制、类型约束、泛型接口,以及如何结合Zod实现编译期类型安全和运行时数据校验的双重保障。
深入解析静态类型与动态类型的核心区别、类型检查时机、安全性对比,以及TypeScript的特殊地位和实际应用建议。
深入解析Base64编码的两种实现方法:TextEncoder/TextDecoder标准方案和encodeURIComponent兼容方案,涵盖使用场景和安全提示。
深入解析OpenAPI自动生成API客户端的ROI优势、完整落地步骤、常见坑规避和行动建议,提升开发效率80%。
深入解析Zod + 类型推导 + 表单库集成的最佳实践,实现类型安全的表单验证方案,涵盖ProForm、Ant Design集成和防御性编程。
深入解析前后端类型共享、OpenAPI自动生成类型、Zod运行时校验等最佳实践,确保TypeScript与后端API的完美兼容。
深入解析函数声明与函数表达式的语法形式、变量提升机制、使用场景和最佳实践。理解两者的核心区别对于掌握JavaScript至关重要。
深入解析主流AI大模型(Claude 3.5 Sonnet、GPT-4、Gemini)和编程专用模型(GitHub Copilot、Cursor)的优势、适用场景和选择建议。
typeof检测基本数据类型,instanceof检测对象的构造函数/原型链。深入解析两者的用法、区别和最佳实践。
深入解析深拷贝与浅拷贝的核心区别,提供多种实现方法:展开运算符、Object.assign、JSON方法、递归实现、第三方库等。
JavaScript通过事件循环机制实现异步非阻塞I/O。深入解析调用栈、宏任务、微任务队列的工作原理,以及浏览器渲染时机。
扩展运算符将可迭代对象展开为单个元素。涵盖数组操作、函数调用、对象操作、字符串处理,以及与Rest参数的区别和典型应用场景。
ES6 class是JavaScript基于原型的OOP模型的语法封装,并非新的OOP模型。深入对比class与传统原型写法的区别,澄清常见误解。
同源策略是Web浏览器实施的核心安全机制,限制跨源资源交互。通过协议、主机名、端口三要素判断同源,防止恶意网站窃取用户数据。
闭包是为了能访问函数内部的变量值,在函数中定义另一个函数并返回给外部变量。优点是隐藏变量防止篡改,缺点是增加内存开销。
回调函数是作为参数传递给另一个函数,并在特定时机被调用的函数。它是JavaScript中实现异步编程、事件处理、高阶函数的核心机制。
深入解析JavaScript内存泄漏的6大常见类型:全局变量、定时器、闭包、DOM引用、事件监听器、缓存增长,以及检测和预防方法。
详解viewport各项设置参数:width、initial-scale、minimum-scale、maximum-scale、height、user-scalable的作用和推荐用法。
深入解析JavaScript循环和条件语句的性能优化技巧,包括避免重复计算、分片处理大数据、查表法替代多分支、提前return等实用策略。
深入解析懒加载和预加载的核心概念与实战应用,涵盖图片懒加载、React.lazy、路由预加载等技术,以及浏览器原生API和工程化最佳实践。
深入解析代码分割与按需加载的核心概念,涵盖动态import()、React.lazy、Vue懒加载等实现方式,以及工程化最佳实践和常见陷阱避坑指南。
从运行时内置缓存到持久化存储,涵盖HTTP缓存、记忆化、构建时缓存、localStorage等四大类缓存机制,全方位提升JavaScript应用性能。
SWR核心思想:立刻返回已有缓存(哪怕过期)保证响应速度,同时后台更新缓存保证数据新鲜度。解决传统缓存策略的白屏和数据陈旧问题。
px是绝对单位,em相对于当前元素字体大小,rem相对于根元素字体大小。理解它们的区别对于响应式设计和可维护的CSS至关重要。
在表现上readonly和disabled都不能让用户对input进行编辑,但从含义、外观、事件响应和数据传输等方面存在重要差别。
前端性能优化是提升用户体验的关键,通过监控和优化核心Web指标,可以显著改善网站的加载速度和交互体验。
置换元素(Replaced Elements)是浏览器根据元素的标签和属性,来决定元素的具体显示内容
<div class="edit" contenteditable="true" style="resize: both"></div>
从右向左匹配 + 基于规则驱动的集合筛选
现代推荐方案:Service Workers + Cache Storage API
三角形的原理就是一个盒子有四个边框交界处都是三角形(度角跟border-width设置有关),当盒子宽高都为0,就是一个由4个三角形形成的正方形/长方形,给 border-color 设置透明,设置颜色的边就是一个三角形了。
产品或功能研讨阶段——UI设计阶段——开发阶段——软件测试阶段——软件发布阶段。
内存泄漏(Memory Leak)是对象被意外长期持有引用,导致无法被回收,最终可能耗尽系统资源、引发程序卡顿甚至崩溃。
+!n;n ^ 1;n === 0 ? 1 : 0;1 - n;
font-weight + font-family,-webkit-font-smoothing,text-rendering
Math.max(...arr);Math.min(...arr);Math.max.apply(Array,arr)
URL解析与DNS查询-TCP三次握手-发送HTTP请求-服务器返回响应-HTML解析,构建DOM树-加载CSS,构建CSSOM树,布局-绘制-合成
GraphQL是一种客户端主动声明数据需求的查询语言与运行时 —— 你“要什么”,它就“给什么”,不多不少。
...args剩余参数,它是真正的数组。arguments类数组对象,它本身不是真正的数组。
-webkit-text-fill-color 设置文本颜色,-webkit-box-shadow inset设置填充
Shadow DOM 可以想象成我们在 Vue 或者 React 中使用的一个个组件,是一种将 HTML 结构、Style 封装起来的结构。我们熟悉的 <video> 标签,其实就是 Shadow DOM 的封装
call和apply,bind都是为了解决改变this的指向。作用都是相同的,只是传参的方式不同。除了第一个参数外,call可以接收一个参数列表,apply只接受一个参数数组。 bind绑定完之后返回一个新的函数,不执行。
<script>立即下载,下载完成后立即执行。<script async>异步下载(与 HTML 解析并行),下载完成后立即执行(可能打断 HTML 解析)。<script defer>异步下载(与 HTML 解析并行)延迟到 HTML 解析完成后、DOMContentLoaded 事件前按顺序执行。
<script>立即下载,下载完成后立即执行。<script async>异步下载(与 HTML 解析并行),下载完成后立即执行(可能打断 HTML 解析)。<script defer>异步下载(与 HTML 解析并行)延迟到 HTML 解析完成后、DOMContentLoaded 事件前按顺序执行。
是浏览器渲染每个元素时遵循的一套‘占地规则’——把所有 HTML 元素抽象成一个矩形盒子,由内容(content)、内边距(padding)、边框(border)、外边距(margin)四层组成。”
从后往前遍历数组,每次将当前位置 i 与 [0, i] 范围内(包含自身)的一个随机位置 j 交换。
计算机用二进制表示小数,而 0.1、0.2 在二进制中是「无限循环小数」,必须舍入 → 累积误差
!important > 内联样式(1000) > id 选择器(100) > class 选择器(10) > tag(1) > *
一句话核心: new 就是「造一个对象,并让构造函数为它打工」的过程
Flexbox(弹性盒子),Grid(网格布局), Positioning(定位布局),Float + Clear(浮动布局), Multi-column Layout(多栏布局) —— 报纸式布局
BFC就相当于一个盒子,内部的元素与外界的元素互不干扰。它不会影响外部的布局,外部的布局也不会影响到它。
property 属于 DOM Object,atrribute 属于 HTML。
::表示伪元素, :表示伪类,是一种样式