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

源代码
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 扩展集成,以及项目创建、代码运行与断点调试的标准操作闭环。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

热门工具图片创意
更多
精选文章
JavaScript 基础
JavaScript 项目实战
Vue
Node.js 基础
AI 编程工具
JS原生代码实现当前时间格式化为YYYY-MM-DD HH:mm:ss

本文深入讲解如何使用原生JavaScript代码将当前时间格式化为标准的YYYY-MM-DD HH:mm:ss格式。包含Date对象核心API解析、数值补零策略、常见时区陷阱辨析与封装可用的完整代码。

11.11
JS原生代码实现当前时间格式化为YYYY-MM-DD HH:mm:ss
JavaScript Math.floor() 向下取整用法与示例

深入解析 JavaScript 中的 Math.floor() 方法,包括其核心语法、数轴几何原理、正负数取整差异、与其他取整函数的对比,以及在随机数生成、分页和时间转换中的实用示例与避坑指南。

11.11
JavaScript Math.floor() 向下取整用法与示例
JS中除了Math.floor还有哪些向下取整的方法?

深入探讨JavaScript中除了Math.floor之外的多种向下取整与截断方法,包括双按位非、按位或、Math.trunc、纯算术模拟等,剖析向零截断与向下取整的本质区别及32位整数溢出陷阱。

11.11
JS中除了Math.floor还有哪些向下取整的方法?
JS计算UTF-8编码后的字符串字节长度

深入讲解在 JavaScript 中准确计算字符串 UTF-8 编码字节长度的核心原理、实用方案与工程避坑指南,全面对比 TextEncoder 与纯算法循环的实现细节。

11.11
JS计算UTF-8编码后的字符串字节长度
封装一个精准的JS四舍五入函数

深入剖析 JavaScript 浮点数四舍五入的精度丢失机理,对比 toFixed 与常规乘除法的局限,基于科学计数法指数位移与边界安全防御,手把手封装一套精准、轻量且具备格式化能力的生产级四舍五入函数。

11.11
封装一个精准的JS四舍五入函数
JavaScript整除负数时Math.floor与Math.trunc的结果差异

深入解析在JavaScript中整除负数时Math.floor与Math.trunc的结果差异。通过数轴原理、推导流程、对比矩阵及真实业务场景,彻底阐明向负无穷舍入与向零截断的本质区别与选型依据。

11.11
JavaScript整除负数时Math.floor与Math.trunc的结果差异
JS怎么获取当前月份的最后一天

在 JavaScript 中获取当前月份最后一天,最简便可靠的标准解法是 new Date(year, month + 1, 0)。本文通过图文与完整代码,深入解析下月第0天的借位回退机制、平闰年与跨年自适应、格式化字符串生成以及数据库查询边界等业务高频考点。

11.11
JS怎么获取当前月份的最后一天
JS中Math.round与toFixed实现四舍五入的区别

深入对比JavaScript中Math.round与Number.prototype.toFixed在返回值类型、小数位数控制、负数中位数舍入方向以及IEEE 754浮点数精度陷阱上的本质区别,并提供可靠的高精度四舍五入解决方案。

11.11
JS中Math.round与toFixed实现四舍五入的区别
查看更多
dw怎么用javascript有哪些值得照着做的真实案例

深入讲解在Adobe Dreamweaver(DW)中使用JavaScript的基础工作流与代码组织方式,并详细解析表单即时验证、FAQ手风琴折叠、商品画廊切换与平滑返回顶部四个经典实战案例。

11.08
dw怎么用javascript有哪些值得照着做的真实案例
javascript下载安装手机版怎么做表单校验

针对手机端JavaScript运行环境特点与触屏交互场景,系统讲解如何在手机端准备开发工具,并基于原生JavaScript完整实现涵盖虚拟键盘适配、防抖监听、失焦校验、提交拦截与真机调试的高性能移动表单校验。

11.08
javascript下载安装手机版怎么做表单校验
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 快速上手:引入库并绘制第一个折线图
查看更多
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官网地址是多少?区分国际站与中文文档入口
查看更多
Windows系统安装Node.js及配置环境变量详细步骤

详细介绍在Windows操作系统上下载、安装Node.js LTS版本的完整操作过程,包含自定义npm全局模块与缓存路径、系统环境变量PATH与NODE_PATH的配置步骤、镜像源切换及常见问题验证排错。

11.11
Windows系统安装Node.js及配置环境变量详细步骤
使用nvm管理多版本Node.js的安装与切换教程

本教程详细讲解如何使用 Node Version Manager (nvm) 在同一台计算机上安全安装、管理与即时切换多个版本的 Node.js。通过环境隔离、别名固化与 .nvmrc 项目锁定,彻底解决前端多项目版本冲突与全局权限问题。

11.11
使用nvm管理多版本Node.js的安装与切换教程
Node.js官网入口是哪个?正确网址与真伪识别

Node.js 官方唯一入口是 https://nodejs.org(中文路径为 https://nodejs.org/zh-cn/)。本文详细讲解 Node.js 正确官方网址、剖析第三方高仿与流氓下载站的常见套路,并提供基于域名、SSL证书、数字签名及哈希校验的全流程真伪识别指南。

11.11
Node.js官网入口是哪个?正确网址与真伪识别
彻底卸载旧版Node.js以解决新版本安装冲突

针对新旧版本Node.js共存冲突、版本号未更新及npm报错问题,系统讲解Windows与macOS平台下彻底卸载旧版Node.js、清理全局模块残留与环境变量的实操步骤与验证方案。

11.11
彻底卸载旧版Node.js以解决新版本安装冲突
Node.js安装后提示'node不是内部或外部命令'?Windows与Mac环境变量PATH配置详解

详解Node.js安装后命令行提示'node不是内部或外部命令'或'command not found'的原因,提供Windows与macOS系统下环境变量PATH的完整排查、配置步骤与验证方法。

11.11
Node.js安装后提示'node不是内部或外部命令'?Windows与Mac环境变量PATH配置详解
Node.js官网下载页面显示不全怎么解决

针对访问Node.js官方网站下载页面时出现按钮缺失、版本表格空白、页面排版混乱或显示不全等问题,本文深入分析前端静态资源与网络分发原因,并提供浏览器排查、官方dist直链及国内镜像等多种立竿见影的解决策略。

11.11
Node.js官网下载页面显示不全怎么解决
安装Node.js后终端提示node命令不存在怎么办

刚安装完Node.js却在终端收到node不是内部或外部命令或command not found的报错?本文系统梳理从终端会话刷新、PATH环境变量配置到多版本管理工具(NVM/FNM)锁定的完整排查与解决步骤。

11.11
安装Node.js后终端提示node命令不存在怎么办
Node.js官网下载地址及Windows/macOS安装包选择

本文详细介绍 Node.js 官方唯一下载入口、LTS 与 Current 版本的决策原则,并针对 Windows 与 macOS 操作系统分别解析 .msi、.zip、.pkg、.tar.gz 以及 x64 与 ARM64 芯片架构的精准选型与安装验证方案。

11.11
Node.js官网下载地址及Windows/macOS安装包选择
查看更多
Cursor新增实时语音对话:可边通话边让Agent编程

Cursor新增实时语音对话,支持在Agent运行任务时交流并听取进度,覆盖Agents Window、IDE、网页端与iOS,语音通话需登录账号并开启麦克风权限。

11.10
Cursor新增实时语音对话:可边通话边让Agent编程
VS Code 1.145更新:Cron调度、远程预览与补丁修复

VS Code 1.145新增本地Cron调度,扩展远程Agent预览能力;后续1.145.1与1.145.2修正遥测归属和事件路由。文中区分正式、预览及实验性功能。

11.10
VS Code 1.145更新:Cron调度、远程预览与补丁修复
Gemini CLI 常用命令指南:怎么发起对话、上传文件与管理历史

本文介绍如何在 Windows 终端中使用 Gemini CLI 进行日常开发交互,涵盖启动对话、引用本地文件、管理会话历史及清理上下文等核心操作。

11.08
Gemini CLI 常用命令指南:怎么发起对话、上传文件与管理历史
Gemini CLI 报错排查:解决连接超时、认证失败及 API 配额限制

本文针对 Gemini CLI 使用中常见的连接超时、认证失败及 API 配额限制问题,提供分层排查方案。通过区分启动、登录与请求阶段的错误特征,指导用户依次检查网络代理配置、验证不同认证路径(Google 账号、API Key、Vertex AI)的设置细节,并核对相应的项目配额状态,帮助用户高效定位并解决问题。

11.08
Gemini CLI 报错排查:解决连接超时、认证失败及 API 配额限制
为什么AI率检测结果不准确?常见误报原因与优化策略

本文深入解析AI率检测中误报与漏报的成因,指出语言差异、文体特征及工具局限性对结果的影响。通过四步复核法,指导用户结合写作过程证据理性看待检测分数,避免盲目改写,提升判断准确性。

11.08
为什么AI率检测结果不准确?常见误报原因与优化策略
WebStorm怎么配置AI插件?JetBrains系列IDE智能编码推荐

本文详解如何在WebStorm中配置JetBrains AI Assistant,涵盖插件安装、模型服务选择、性能优化及故障排查,帮助开发者高效利用AI辅助编码。

11.08
WebStorm怎么配置AI插件?JetBrains系列IDE智能编码推荐
主流AI率检测工具对比:准确率、价格与适用场景评测

本文对比GPTZero、Turnitin、Copyleaks和Originality.ai等主流AI检测工具,从准确率指标解读、计费模式差异、多语言支持及隐私政策等维度进行分析,帮助用户根据个人、教育机构或内容团队的不同场景选择合适工具,并强调检测结果仅作为辅助参考而非最终定论。

11.08
主流AI率检测工具对比:准确率、价格与适用场景评测
AI生成代码能绕过检测吗?前端代码AI率检测的局限性

本文探讨前端代码AI率检测的技术局限,指出其仅能作为辅助提示而非确凿证据。文章分析了代码风格相似性、检测器泛化能力及实证研究结果,强调检测结果受语言、任务和数据集影响显著。建议开发者与管理者关注代码质量、可维护性及提交者的解释能力,而非依赖单一的AI检测分数进行裁决。

11.08
AI生成代码能绕过检测吗?前端代码AI率检测的局限性
查看更多