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

源代码
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安装与VS Code配置指南

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

热门工具图片创意
更多
精选文章
JavaScript 基础
JavaScript 项目实战
Vue
Node.js 基础
AI 编程工具
JavaScript基础选择题在旧版本里支持吗

深度解析JavaScript基础选择题在旧版本运行环境中的支持情况。系统梳理传统ES3/ES5考点与现代ES6基础语法的版本差异、旧版引擎的语法解析机制、排查步骤及降级转译策略。

11.07
JavaScript基础选择题在旧版本里支持吗
JavaScript基础选择题和别的语言里的同类写法有什么不同

深度对比JavaScript基础选择题常考的条件判断、switch分支、短路选择等语法与Java、C/C++、Python等语言同类写法的底层机制差异,解析类型转换、执行模型与常见易错陷阱。

11.07
JavaScript基础选择题和别的语言里的同类写法有什么不同
JavaScript比较参数的底层执行过程是怎样的

深入解析ECMAScript规范中JavaScript比较参数的底层执行机制:从操作数自左向右求值、ToPrimitive对象拆箱流水线,到抽象关系比较(IsLessThan)决策树与抽象相等(==)类型降维同化,彻底讲透null与0、[]与![]等经典反直觉比较的根源。

11.07
JavaScript比较参数的底层执行过程是怎样的
优质JavaScript学习资源推荐:书籍、文档与社区

系统推荐JavaScript入门与进阶的核心学习资源,涵盖经典权威书籍、一手官方参考文档以及高价值技术社区的使用策略与避坑指南。

11.06
优质JavaScript学习资源推荐:书籍、文档与社区
JS获取UTC时间戳避免时区偏差的方法

深入讲解JavaScript中获取UTC时间戳的核心机制,分析常见时区偏差成因,提供基于Date.now()、Date.UTC()和ISO 8601字符串解析的稳妥方案与避坑指南。

11.06
JS获取UTC时间戳避免时区偏差的方法
JS浮点数精度导致Math.ceil结果异常怎么解决

深入剖析JavaScript中IEEE 754双精度浮点数导致Math.ceil向上取整出现结果异常的根本原因,提供包括Epsilon容差校准、整数缩放运算及Decimal高精度库在内的完整可落地解决方案与工程规范。

11.06
JS浮点数精度导致Math.ceil结果异常怎么解决
ES6+新特性实例:解构赋值、箭头函数与模板字符串用法

深入解析ES6+三大核心特性:解构赋值、箭头函数与模板字符串的语法规则、底层运行机制与生产级实战应用,辅以四幅架构与流程图示,帮助开发者写出优雅高效的JavaScript代码。

11.06
ES6+新特性实例:解构赋值、箭头函数与模板字符串用法
JavaScript开发环境怎么搭?浏览器控制台与VS Code配置指南

针对JavaScript初学者的开发环境搭建指南,详细介绍浏览器控制台即时交互与VS Code本地工程化环境配置流程,包含代码调试、Live Server服务与避坑实践。

11.06
JavaScript开发环境怎么搭?浏览器控制台与VS Code配置指南
查看更多
JS脚本App能实现哪些自动化操作

深入解析移动端JS脚本App的核心能力与应用场景,涵盖小组件数据流、网络接口同步、无障碍界面自动化以及跨应用调度,并提供实操步骤与代码示例。

11.06
JS脚本App能实现哪些自动化操作
怎么在 sigma.js 中集成自定义图像作为节点图标

本文详细讲解在现代 sigma.js (v2/v3) 中集成自定义图像作为节点图标的完整实现方法,包括依赖配置、NodeImageProgram 注册、Graphology 数据模型构建、CORS 跨域处理及 WebGL 渲染管线深度解析。

11.06
怎么在 sigma.js 中集成自定义图像作为节点图标
reveal.js 移动端显示错乱怎么修复

针对 reveal.js 移动端显示错乱、字体极小、布局被截断或大面积黑边的问题,深入剖析其基于固定画板的等比缩放计算机制,提供视口元标签校准、核心初始化参数调优、CSS 响应式弹性重构与触控长内容处理的完整实用修复方案。

11.06
reveal.js 移动端显示错乱怎么修复
vtk.js 自定义 Actor 属性:修改颜色、透明度与映射规则

深入解析 vtk.js 中自定义 Actor 属性的完整方法,包含修改基础颜色、调整透明度、定制 Mapper 标量颜色映射表以及解决材质与标量映射冲突的排查实践。

11.06
vtk.js 自定义 Actor 属性:修改颜色、透明度与映射规则
怎么使用 Fabric.js 实现图片裁剪、旋转及滤镜效果

详细讲解如何使用 Fabric.js 快速实现图片的矩形与遮罩裁剪、任意角度中心旋转及多种滤镜链式叠加,包含核心原理对比、完整代码示例与生产排坑指南。

11.06
怎么使用 Fabric.js 实现图片裁剪、旋转及滤镜效果
Chart.js 快速上手:引入库并绘制第一个折线图

本文详细介绍如何使用 Chart.js 快速搭建并绘制第一个折线图,涵盖 Canvas 容器规范、CDN 引入、配置对象核心参数解析、渲染原理及常见重绘报错排查方法。

11.06
Chart.js 快速上手:引入库并绘制第一个折线图
p5.js 动画原理:利用 frameCount 控制运动轨迹

深入剖析 p5.js 中 frameCount 的底层自增机制与动画原理,详细讲解如何将离散帧计数映射为平滑的直线、正弦波、圆周、螺旋与复合运动轨迹,并提供完整的实战代码与参数设计指导。

11.05
p5.js 动画原理:利用 frameCount 控制运动轨迹
响应式JavaScript网站模板源码下载与结构解析

深入解析响应式JavaScript网站模板的源码获取渠道、标准工程目录结构、媒体查询与JS交互状态协同机制,并提供规范的二次开发与上线核验指南。

11.05
响应式JavaScript网站模板源码下载与结构解析
查看更多
Vue.js 与 React 怎么选:学习曲线、生态与性能对比

面对新项目启动或技术栈演进,如何客观务实地在 Vue.js 与 React 之间做出决断?本文从心智学习曲线、底层运行机制与性能、生态工程治理三大核心维度展开详尽对比,并提供切实的场景决策路径。

11.06
Vue.js 与 React 怎么选:学习曲线、生态与性能对比
JSP+JS混合开发与现代前后端分离架构的对比

深入对比JSP+JS混合开发与现代前后端分离架构的运行机制、代码组织、团队协作与迁移实践,提供清晰的技术选型与平滑演进方案。

11.06
JSP+JS混合开发与现代前后端分离架构的对比
Vue 和 React 项目中封装 Video.js 的最佳实践

深入探讨在 Vue 3 与 React 18 项目中封装 Video.js 的最佳实践。分析 DOM 隔离、响应式代理陷阱、StrictMode 双重挂载防护、细粒度源更新及优雅销毁策略。

11.06
Vue 和 React 项目中封装 Video.js 的最佳实践
React 与 Vue 项目中怎么正确集成和销毁 PixiJS 应用

详解在 React 与 Vue 3 单页应用中集成 PixiJS 的正确方式,重点剖析 React StrictMode 双重挂载竞态、Vue 响应式代理陷阱,以及彻底销毁 Canvas、释放 WebGL 纹理与 Ticker 资源的完整方案。

11.05
React 与 Vue 项目中怎么正确集成和销毁 PixiJS 应用
怎么在 Vue 和 React 项目中正确集成 AOS.js

深入解析如何在 Vue 3 与 React 现代前端单页应用项目中正确集成 AOS.js 滚动动效库,涵盖样式引入、组件生命周期挂载、SPA 路由跳转刷新及异步数据渲染时的坐标校准方法。

11.05
怎么在 Vue 和 React 项目中正确集成 AOS.js
Vue3 项目中怎么集成 Mock.js 模拟后端接口

在 Vue3 项目中集成 Mock.js 的完整实践指南。涵盖依赖安装、规则定义、开发环境按需拦截、动态参数处理及生产构建隔离,帮助前端在脱离后端依赖时高效开发。

11.05
Vue3 项目中怎么集成 Mock.js 模拟后端接口
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官网地址是多少?区分国际站与中文文档入口
查看更多
javascript下载安装手机版性能开销大不大

深入解答javascript下载安装手机版性能开销大不大。系统剖析手机内置引擎与独立本地沙盒安装的存储、内存、CPU及耗电表现,提供完整安装测试与性能监控指南。

11.07
javascript下载安装手机版性能开销大不大
Node.js LTS版与Current版有什么区别?初学者该下载哪个版本

详细对比Node.js LTS长期支持版与Current最新版的区别,解析版本生命周期、稳定性差异与生态兼容性,为初学者提供清晰的下载建议和环境验证操作指南。

11.06
Node.js LTS版与Current版有什么区别?初学者该下载哪个版本
怎么在本地运行JavaScript?Node.js官方下载地址与安装指南

详细讲解如何在本地电脑运行JavaScript代码,涵盖Node.js官方正版下载渠道、LTS稳定版选型依据、Windows与macOS安装配置全步骤、终端环境变量验证以及交互式REPL与脚本运行实操指南。

11.06
怎么在本地运行JavaScript?Node.js官方下载地址与安装指南
怎么使用 nvm 管理和更新 Node.js 版本

本文系统讲解怎么使用 nvm(Node Version Manager)在多项目中管理、无缝切换以及平滑更新 Node.js 版本,涵盖常用命令、全局包无损迁移、.nvmrc 团队版本对齐与高频故障排查。

11.06
怎么使用 nvm 管理和更新 Node.js 版本
升级 Node.js 后 node-sass 或原生模块编译报错的修复方案

深入解析升级 Node.js 后 node-sass 及 C++ 原生模块编译报错的根本原因(ABI 变更与 node-gyp 依赖),提供迁移至现代 Dart Sass、升级适配版本、重构本地构建环境以及版本回退的完整实操解决方案与对比指南。

11.06
升级 Node.js 后 node-sass 或原生模块编译报错的修复方案
网页版JavaScript编程有哪些局限?何时该切换到本地开发环境

深入分析网页版JavaScript在线编程的五大核心局限,结合架构对比与实测场景,提供清晰的决策标准与从网页端切换到本地开发环境的标准步骤。

11.06
网页版JavaScript编程有哪些局限?何时该切换到本地开发环境
Node.js中console打印与浏览器端的区别及注意事项

深度剖析Node.js与浏览器端console打印的核心区别,覆盖底层I/O与渲染流向、对象延时求值与快照机制、格式化与ANSI支持、进程生命周期及高并发生产环境日志避坑指南。

11.06
Node.js中console打印与浏览器端的区别及注意事项
Node.js 升级后 npm 依赖报错或编译失败怎么解决

针对 Node.js 升级后出现的 npm 依赖报错、C++ 原生扩展编译中断、ABI 版本不匹配、OpenSSL 3.0 加密算法报错以及依赖树解析冲突,提供系统的诊断流程、根因分析、实操解决步骤与长效防护策略。

11.05
Node.js 升级后 npm 依赖报错或编译失败怎么解决
查看更多
IntelliJ IDEA中通义灵码插件的常用快捷键与高效技巧

本文详解 IntelliJ IDEA 中通义灵码(Qoder CN)插件的核心快捷键,涵盖行间补全、候选切换及智能问答操作,并提供 Keymap 冲突排查方法,帮助开发者提升编码效率。

11.07
IntelliJ IDEA中通义灵码插件的常用快捷键与高效技巧
办公写作选DeepSeek还是ChatGPT?常见场景下的模型推荐

本文针对办公写作场景,提供DeepSeek与ChatGPT的选型建议。通过拆解任务类型、控制变量对照测试及遵循数据治理原则,帮助用户根据准确性、可用性及合规性做出理性选择,而非盲目依赖模型名气。

11.07
办公写作选DeepSeek还是ChatGPT?常见场景下的模型推荐
Gemini Pro与Ultra版本在深度研究能力上有何区别?

本文澄清Gemini Pro与Ultra订阅在深度研究功能上的差异,指出两者均可使用Pro模型,主要区别在于报告额度及Ultra独有的可视化报告能力,帮助用户根据研究频率和交付需求选择合适的套餐。

11.07
Gemini Pro与Ultra版本在深度研究能力上有何区别?
通义灵码插件自定义提示词(Prompt)编写指南

本文介绍如何利用通义灵码插件的项目专属规则与企业自定义指令,优化Prompt编写策略。通过区分规则触发类型、结构化提示词内容以及小步验证方法,帮助进阶用户生成更精准、符合项目规范的代码,提升协作效率。

11.07
通义灵码插件自定义提示词(Prompt)编写指南
Kimi辅助创意写作:怎么让它保持角色设定与风格统一

本文介绍如何利用Kimi进行长篇创意写作,通过构建可执行的角色档案、可视化的风格约束卡片以及阶段性状态摘要,解决长会话中角色崩坏和风格漂移的问题,确保叙事一致性。

11.07
Kimi辅助创意写作:怎么让它保持角色设定与风格统一
Windsurf编辑器下载安装教程及首次启动配置指南

本文提供Windsurf编辑器的官方下载、Windows安装步骤及首次启动配置指南,涵盖登录、项目打开及基础环境设置,帮助用户快速上手。

11.07
Windsurf编辑器下载安装教程及首次启动配置指南
VS Code安装通义灵码插件及阿里云账号登录配置

本文详解在 VS Code 中安装通义灵码插件及绑定阿里云账号的步骤,涵盖插件市场搜索、官方 VSIX 安装、浏览器授权登录及远程环境 AK/SK 配置,帮助新手快速完成环境部署。

11.07
VS Code安装通义灵码插件及阿里云账号登录配置
Kimi长文档写作实战:上传资料后怎么提取信息并整合成文

本文介绍利用Kimi辅助长篇写作的实战流程,涵盖资料分组、分轮提取关键信息及人工核对等步骤,旨在提高写作效率并确保内容准确性。

11.07
Kimi长文档写作实战:上传资料后怎么提取信息并整合成文
查看更多