修改代码后点击运行,即可查看效果

源代码
JavaScript 历史

JavaScript 由 Brendan Eich 在 Netscape 公司于 1995 年发明,最初命名为 Mocha,后改名为 LiveScript,最终定为 JavaScript。

发展历程:
  • 1995年 — 最初命名为 Mocha,后改名为 LiveScript,最终定名为 JavaScript。
  • 1996 — Microsoft 推出 JScript
  • 1997 — ECMAScript 第一版标准化
  • 2009 — ECMAScript 5 发布
  • 2015 — ECMAScript 2015 (ES6) 重大更新
最后总结:

JavaScript 诞生于 web 时代,最初用于网页交互,如今已成为 全栈开发的核心语言,应用于前端、后端、桌面应用、移动端、游戏开 发等多个领域,仍在持续进化。

热门教程
更多
JavaScript开发环境怎么搭建:Node.js安装与VS Code配置指南 本指南详尽讲解如何在本地计算机搭建标准的现代 JavaScript 开发环境:包括 Node.js LTS 版本的安装与系统环境变量验证、npm 镜像源加速设

JavaScript开发环境怎么搭建:Node.js安装与VS Code配置指南

本指南详尽讲解如何在本地计算机搭建标准的现代 JavaScript 开发环境:包括 Node.js LTS 版本的安装与系统环境变量验证、npm 镜像源加速设置、Visual Studio Code 编辑器核心配置与 ESLint、Prettier 扩展集成,以及项目创建、代码运行与断点调试的标准操作闭环。

Node.js入门指南:使用JavaScript构建后端服务器 本教程从零讲解如何使用JavaScript和Node.js构建稳定高效的后端服务器,涵盖核心运行机制、原生HTTP服务搭建、路由解析与生产级框架实践。

Node.js入门指南:使用JavaScript构建后端服务器

本教程从零讲解如何使用JavaScript和Node.js构建稳定高效的后端服务器,涵盖核心运行机制、原生HTTP服务搭建、路由解析与生产级框架实践。

JS使用Array.from和Array.of创建数组的方法 深入解析JavaScript中Array.of与Array.from创建数组的方法,涵盖传统Array构造函数的参数陷阱、类数组与可迭代对象转换、内置映射管道与实战应用技巧。

JS使用Array.from和Array.of创建数组的方法

深入解析JavaScript中Array.of与Array.from创建数组的方法,涵盖传统Array构造函数的参数陷阱、类数组与可迭代对象转换、内置映射管道与实战应用技巧。

JS Map怎么遍历:forEach与for...of用法详解 深入详解 JavaScript 中 Map 对象的遍历方法,重点剖析 forEach 与 for...of 的用法细节、参数顺序、控制流支持、迭代器变体以及场景选型指南。

JS Map怎么遍历:forEach与for...of用法详解

深入详解 JavaScript 中 Map 对象的遍历方法,重点剖析 forEach 与 for...of 的用法细节、参数顺序、控制流支持、迭代器变体以及场景选型指南。

JS怎么使用JSON.stringify实现JSON格式化与缩进 详细讲解在 JavaScript 中使用 JSON.stringify 实现 JSON 数据格式化与层级缩进的方法,解析第三个参数 space 的数值与字符串规则,对比空格与

JS怎么使用JSON.stringify实现JSON格式化与缩进

详细讲解在 JavaScript 中使用 JSON.stringify 实现 JSON 数据格式化与层级缩进的方法,解析第三个参数 space 的数值与字符串规则,对比空格与制表符缩进差异,并提供实际操作步骤与常见避坑指南。

JS判空时怎么避免0、false和NaN被误判为空 在JavaScript中进行判空时,直接使用!val或||常导致数字0、布尔值false以及NaN被错误当作空值处理。本文详细剖析JS中假值与空值的边界差异,提供空值合并运算符(??)、显

JS判空时怎么避免0、false和NaN被误判为空

在JavaScript中进行判空时,直接使用!val或||常导致数字0、布尔值false以及NaN被错误当作空值处理。本文详细剖析JS中假值与空值的边界差异,提供空值合并运算符(??)、显式类型校验以及生产级判空函数的具体实现与排查方法。

JS怎么获取body元素:document.body标准用法 本文详细讲解在JavaScript中获取body元素的标准方法document.body,剖析其底层机制、时序加载问题与常见报错,对比querySelector等其他方式,并给出

JS怎么获取body元素:document.body标准用法

本文详细讲解在JavaScript中获取body元素的标准方法document.body,剖析其底层机制、时序加载问题与常见报错,对比querySelector等其他方式,并给出最佳实践。

JS对象数组转字符串为什么推荐用JSON.stringify() 深入解析JavaScript中对象数组转字符串为什么推荐使用JSON.stringify(),剖析toString()陷阱、结构保真、字符安全转义机制、跨端通用性及边界限制。

JS对象数组转字符串为什么推荐用JSON.stringify()

深入解析JavaScript中对象数组转字符串为什么推荐使用JSON.stringify(),剖析toString()陷阱、结构保真、字符安全转义机制、跨端通用性及边界限制。

什么是JavaScript回调函数?作为参数传递的实际案例 深入浅出解析JavaScript回调函数的底层机制与运作原理,详解函数作为参数传递的逻辑,结合数组处理、事件监听与异步模拟等实战案例,帮助开发者彻底掌握回调函数的用法及避坑指南。

什么是JavaScript回调函数?作为参数传递的实际案例

深入浅出解析JavaScript回调函数的底层机制与运作原理,详解函数作为参数传递的逻辑,结合数组处理、事件监听与异步模拟等实战案例,帮助开发者彻底掌握回调函数的用法及避坑指南。

原生JS鼠标事件模拟拖拽排序:兼容旧浏览器的实现思路 深入讲解使用原生JavaScript鼠标事件(mousedown、mousemove、mouseup)模拟列表拖拽排序的完整实现思路与兼容旧版浏览器的方案,涵盖事件垫片、占位符定位、几何

原生JS鼠标事件模拟拖拽排序:兼容旧浏览器的实现思路

深入讲解使用原生JavaScript鼠标事件(mousedown、mousemove、mouseup)模拟列表拖拽排序的完整实现思路与兼容旧版浏览器的方案,涵盖事件垫片、占位符定位、几何中线碰撞算法及性能优化。

JS对象合并时属性覆盖顺序是怎么的 全面讲解 JavaScript 中合并对象时的属性覆盖顺序与执行机制,深入分析展开运算符与 Object.assign 的时序差异、浅拷贝陷阱、原型链与访问器属性处理以及工程最佳实践。

JS对象合并时属性覆盖顺序是怎么的

全面讲解 JavaScript 中合并对象时的属性覆盖顺序与执行机制,深入分析展开运算符与 Object.assign 的时序差异、浅拷贝陷阱、原型链与访问器属性处理以及工程最佳实践。

JavaScript与Java有什么区别?新手怎么区分 针对编程新手的实用指南,系统解析JavaScript与Java在设计目的、执行机制、类型系统与应用场景上的本质区别,提供四步排查法与完整代码示例,帮助初学者快速识别并准确区分两种语言。

JavaScript与Java有什么区别?新手怎么区分

针对编程新手的实用指南,系统解析JavaScript与Java在设计目的、执行机制、类型系统与应用场景上的本质区别,提供四步排查法与完整代码示例,帮助初学者快速识别并准确区分两种语言。

热门工具图片创意
更多
精选文章
JavaScript 基础
JavaScript 项目实战
Vue
Node.js 基础
AI 编程工具
JavaScript正则替换中美元符号$与反斜杠的转义处理

深入解析JavaScript中String.prototype.replace()在处理美元符号$与反斜杠\时的双重转义机制,阐明正则匹配端与替换模板端的不同解析规则,并提供安全可靠的解决方案与最佳实践。

11.05
JavaScript正则替换中美元符号$与反斜杠的转义处理
前端页面怎么实现JSON数据的高亮格式化展示

深入解析前端页面如何实现JSON数据的高亮格式化展示。从JSON.stringify缩进排版到正则语法分词、XSS实体安全转义、CSS色彩映射,以及第三方库选型与生产性能优化,提供完整可落地的纯原生代码和实践指南。

11.05
前端页面怎么实现JSON数据的高亮格式化展示
JavaScript中%是取余还是取模?与Math.floor实现的区别

深入剖析JavaScript中%运算符的真实本质——它是向零截断的取余(Remainder)而非数学意义上的向下取整取模(Modulo)。结合Math.floor推导底层原理、符号规则差异,并通过轮播图循环索引、时钟角度等实际场景给出工程级解决方案。

11.05
JavaScript中%是取余还是取模?与Math.floor实现的区别
JS中parseInt与Number转整数的核心区别及适用场景

深入对比JavaScript中parseInt与Number转整数的底层机制差异、边界行为表现、潜在陷阱及各工程场景下的最佳选型实践。

11.05
JS中parseInt与Number转整数的核心区别及适用场景
JS大数值转字符串出现科学计数法怎么办

深入解析JavaScript中大数值转字符串出现科学计数法与精度丢失的根本原因,详细辨析toFixed的失效边界,并提供接口拦截、原生BigInt、纯JS平铺展开算法以及高精度库等完整落地解决方案。

11.05
JS大数值转字符串出现科学计数法怎么办
ES6模块化中js文件怎么用import和export交互

详细讲解ES6模块化标准下JavaScript文件如何通过import和export实现模块间交互,包含运行环境配置、命名导出与默认导出语法、实时只读绑定机制、动态导入以及高频报错解决方案。

11.05
ES6模块化中js文件怎么用import和export交互
crypto-js 处理 Base64 和 Hex 编码转换的正确姿势

深入详解使用 crypto-js 进行 Base64 与 Hex 编码转换的正确姿势。通过剖析 WordArray 二进制数据结构,提供无损互转、格式清洗、加解密直接序列化等标准实战代码与避坑指南。

11.05
crypto-js 处理 Base64 和 Hex 编码转换的正确姿势
JavaScript入门书籍避坑:这些书不适合初学者

针对零基础JavaScript初学者,详细梳理犀牛书、红宝书、《你不知道的JavaScript》等经典大部头不适合入门的具体原因,提供实用的四步挑书判断法与分阶段学习进阶路线。

11.05
JavaScript入门书籍避坑:这些书不适合初学者
查看更多
D3.js 比例尺与坐标轴的配置详解

深入解析 D3.js 比例尺与坐标轴的配置机制与实战方法,涵盖连续型、离散型、时间型比例尺的映射原理,五步坐标轴装配流水线,DOM底层结构拆解,刻度微调及常见渲染陷阱排查。

11.05
D3.js 比例尺与坐标轴的配置详解
适合JavaScript初学者的实战项目:制作简易待办事项列表

专为JavaScript初学者设计的简易待办事项列表开发教程,通过原生HTML、CSS与JavaScript,从DOM获取、动态节点创建到事件委托完整讲解新增、标记完成与删除任务的实现流程。

11.05
适合JavaScript初学者的实战项目:制作简易待办事项列表
推荐几款轻量级JS照片墙开源库及对比

推荐几款体积小巧、性能优异的轻量级 JavaScript 照片墙开源库,深入分析垂直瀑布流与水平等高对齐两种排版原理,并提供完整的集成代码、图片防抖解决方案与选型对比指南。

11.05
推荐几款轻量级JS照片墙开源库及对比
sigma.js 怎么实现节点点击、拖拽与悬停提示交互

深入解析在 sigma.js 中如何基于 Graphology 实现高性能的图谱节点点击高亮、平滑拖拽移动以及 HTML 浮动悬停提示(Tooltip)交互,涵盖事件监听、坐标转换与镜头状态控制的核心代码与实践技巧。

11.05
sigma.js 怎么实现节点点击、拖拽与悬停提示交互
Matter.js 与 PixiJS/Three.js 集成:分离物理计算与渲染

深入讲解如何将 Matter.js 物理引擎与 PixiJS 及 Three.js 现代化渲染管线进行彻底解耦,涵盖数据驱动单向同步架构、坐标系映射差异、四步落地流程、固定时间步长与实战完整代码。

11.05
Matter.js 与 PixiJS/Three.js 集成:分离物理计算与渲染
anime.js 与 GSAP 对比:轻量级项目该怎么选择动画库

针对轻量级前端项目的动效开发需求,深度对比 anime.js 与 GSAP 在包体积、API 设计、时间轴编排、SVG 支持及开源许可证上的核心差异,提供实操步骤、完整代码示例与明确的选型决策指引。

11.05
anime.js 与 GSAP 对比:轻量级项目该怎么选择动画库
sigma.js 自定义节点样式:设置颜色、大小及标签显示的技巧

深入讲解 sigma.js (v2/v3) 中自定义节点样式的高效技巧。涵盖 Graphology 基础属性建模、nodeReducer 动态高亮与降暗、节点大小对数归一化、标签显示阈值与空间网格防重叠碰撞优化,以及自定义 WebGL NodeProgram 扩展。

11.05
sigma.js 自定义节点样式:设置颜色、大小及标签显示的技巧
D3.js 与 ECharts 选型对比:灵活性 vs 开发效率

从项目需求出发,深入对比 D3.js 与 ECharts 在灵活性和开发效率两个维度上的实际差异,帮助开发者做出合理的可视化库选型决策。

11.05
D3.js 与 ECharts 选型对比:灵活性 vs 开发效率
查看更多
Vue.js 高阶组件封装与自定义 Hook 实战技巧

深入讲解 Vue.js 高阶组件(HOC)封装与自定义 Hook(Composable)的核心原理、代码模板、边界处理与工程选型技巧,帮助开发者在实际项目中高效落地组件逻辑复用。

11.05
Vue.js 高阶组件封装与自定义 Hook 实战技巧
Vue.js官网地址是多少?区分国际站与中文文档入口

详细解答 Vue.js 官网地址是多少,系统解析国际主站(vuejs.org)与官方中文文档站(cn.vuejs.org)的定位差异、多版本归档规则、语言切换操作步骤与常见混淆误区。

11.05
Vue.js官网地址是多少?区分国际站与中文文档入口
在 React 或 Vue 项目中封装使用 JS 节流防抖

深入解析在 React 与 Vue 3 项目中封装使用节流(Throttle)与防抖(Debounce)的核心原理。分析组件重渲染与响应式机制下的闭包陷阱、引用失效问题,并提供生产级 Custom Hook 与 Composable 实现及生命周期清理方案。

11.05
在 React 或 Vue 项目中封装使用 JS 节流防抖
Vue或React项目中为何不建议直接使用JS刷新页面

深入剖析在Vue与React等单页面应用(SPA)中直接使用location.reload()等原生JS硬刷新所带来的状态丢失、白屏卡顿与性能损耗,并提供数据失效重拉、Key属性重置子树及无感路由重载等工程化最佳实践。

11.05
Vue或React项目中为何不建议直接使用JS刷新页面
Vue项目中怎么集成JS颜色选择器组件

详细讲解如何在Vue项目中集成纯JS颜色选择器组件,包括安装配置、组件封装、双向绑定、事件处理和常见问题排查。

11.05
Vue项目中怎么集成JS颜色选择器组件
怎么在 Vue 或 React 项目中正确集成 animate.js

深入解析如何在 Vue 3 与 React 18 项目中规范、高效地集成 animate.js(anime.js)。涵盖 DOM 引用绑定、生命周期时序控制、组件卸载清理、状态响应式联动、封装自定义 Composable/Hook 以及常见避坑指南。

11.05
怎么在 Vue 或 React 项目中正确集成 animate.js
原生JS操作DOM与Vue/React虚拟DOM的本质区别

深入解析原生JS操作DOM与Vue/React虚拟DOM的本质区别。从编程范式、渲染链路、Diff更新流程、性能真实边界到跨平台抽象能力,全面透彻梳理前端渲染核心原理。

11.04
原生JS操作DOM与Vue/React虚拟DOM的本质区别
React与Vue框架选型对比:基于JavaScript前端开发视角

基于JavaScript前端开发视角,深入剖析React与Vue在响应式心智模型、组件开发范式、生态组织形态、团队工程化落地成本等核心维度的差异,提供清晰可执行的四步选型评估方法与场景决策矩阵。

11.04
React与Vue框架选型对比:基于JavaScript前端开发视角
查看更多
Node.js中使用path模块获取文件名

深入讲解在Node.js中使用内置path模块获取文件名的标准方法与实践技巧,涵盖path.basename()基础调用、剥离扩展名、path.parse()对象解构以及跨平台和特殊边界路径的处理方案。

11.05
Node.js中使用path模块获取文件名
Node.js中url模块与querystring模块处理查询字符串的区别

深入对比Node.js中url模块与querystring模块在解析查询字符串时的核心区别,涵盖职责定位、前导问号处理、自定义分隔符、安全防护及现代WHATWG标准的演进选型。

11.05
Node.js中url模块与querystring模块处理查询字符串的区别
Node.js 安装配置与第一个 HTTP 服务器编写

本文系统讲解 Node.js 的安装与环境变量配置流程,提供跨平台安装建议与验证方法,并基于原生 http 模块深入实现第一个 HTTP 服务器,解析请求响应生命周期及排查常见运行问题。

11.05
Node.js 安装配置与第一个 HTTP 服务器编写
macOS卸载Node.js指南:区分Homebrew与pkg安装包的处理方式

在macOS上彻底卸载Node.js的专业实用指南。深入解析Homebrew包管理器与Node.js官方.pkg安装包在底层文件系统中的分布差异,分别提供精准卸载命令、系统级残留文件清理路径与终端环境验证排查方法。

11.05
macOS卸载Node.js指南:区分Homebrew与pkg安装包的处理方式
怎么在本地运行JavaScript脚本:Node.js下载安装与环境配置教程

本文详细讲解如何在本地计算机脱离浏览器独立运行JavaScript脚本,包括Node.js的官方下载、LTS版本与Current版本的选择依据、安装向导中PATH配置等关键步骤、环境变量生效验证与常见报错排查,以及编写并运行第一个本地JS脚本的完整流程。

11.05
怎么在本地运行JavaScript脚本:Node.js下载安装与环境配置教程
怎么修改Node.js和npm的全局安装路径与缓存目录

详细讲解如何修改 Node.js 与 npm 的全局包安装路径(prefix)与本地缓存目录(cache),通过完整步骤、原理解析、配图与环境变量配置,彻底解决系统盘空间占用与命令寻址问题。

11.04
怎么修改Node.js和npm的全局安装路径与缓存目录
除了浏览器和Node.js,还有哪些轻量级Js脚本运行工具?

除了浏览器和体积庞大的Node.js,本文盘点并深度剖析主流轻量级JavaScript脚本运行工具,涵盖QuickJS、Bun、Deno、Duktape及Hermes的特性、运行命令、内存延迟对比与场景选型。

11.04
除了浏览器和Node.js,还有哪些轻量级Js脚本运行工具?
Java和JavaScript应用场景对比:企业级后端 vs Web前端与Node.js

深入对比Java与JavaScript(含Node.js)的核心定位与应用场景。从企业级复杂业务后端架构到现代Web前端交互与高并发I/O密集型Node.js服务,详细解析语言特性、生态差异及具体选型决策指南。

11.04
Java和JavaScript应用场景对比:企业级后端 vs Web前端与Node.js
查看更多
免登录快速分享代码:适合面试协作的轻量级JS在线运行工具推荐

针对技术面试与即时交流场景,梳理免登录、轻量级JavaScript在线运行与代码分享工具。对比URL哈希无状态存储与快照持久化机制,详解TypeScript Playground、JSFiddle、PlayCode等工具的特点与协作规范。

11.05
免登录快速分享代码:适合面试协作的轻量级JS在线运行工具推荐
VS Code怎么一键运行Js脚本?Code Runner插件配置步骤

详细讲解在VS Code中利用Code Runner插件一键运行JavaScript脚本的具体配置步骤、常用快捷键、settings.json优化配置与常见问题排查。

11.03
VS Code怎么一键运行Js脚本?Code Runner插件配置步骤
Auto.js官方下载地址在哪?GitHub与Gitee最新资源汇总

全面梳理Auto.js官方下载地址、GitHub历史归档、Gitee国内镜像及主流社区衍生分支。详细解析不同版本的适用边界、安全验证流程与场景选型建议。

11.03
Auto.js官方下载地址在哪?GitHub与Gitee最新资源汇总
JavaScript编辑器怎么开启智能代码补全?

详细介绍在VS Code等主流JavaScript编辑器中开启并强化智能代码补全(IntelliSense)的具体步骤,包括基础触发设置、jsconfig.json工程上下文配置、JSDoc类型标注及补全失效的系统排查方法。

11.02
JavaScript编辑器怎么开启智能代码补全?
CodePen、JSFiddle与Replit怎么选?JavaScript在线编程平台对比

面对CodePen、JSFiddle与Replit三大主流JavaScript在线平台,本文从底层运行架构、工程结构、依赖引入与协作场景等维度进行详尽对比,并给出清晰实用的四步选型决策指南。

11.02
CodePen、JSFiddle与Replit怎么选?JavaScript在线编程平台对比
JS 在线编辑器能替代本地 IDE 吗?优势与局限分析

深入对比JS在线编辑器与本地IDE的底层架构机制,剖析在线开发环境在零配置、复现分享与轻量验证上的优势,以及在系统原生依赖、大型Monorepo构建、数据合规上的局限,提供明确的项目选型决策流程与现代混合协作实践。

11.02
JS 在线编辑器能替代本地 IDE 吗?优势与局限分析
适合新手入门的JavaScript编辑器有哪些?

适合新手入门的JavaScript编辑器推荐与选型指南,深入对比VS Code、在线代码沙箱、Sublime Text及WebStorm的优劣势、适用场景与起步配置步骤,帮助初学者避开选型陷阱。

10.30
适合新手入门的JavaScript编辑器有哪些?
编写JavaScript代码用什么软件?VS Code等免费编辑器下载推荐

解答编写JavaScript代码用什么软件,推荐以VS Code为主的主流免费编辑器,提供官方下载途径、核心扩展配置、基础操作步骤与选型对比。

10.30
编写JavaScript代码用什么软件?VS Code等免费编辑器下载推荐
查看更多