主页
  • 主页
  • 分类
  • 热文
  • 教程
  • 面试
  • 标签
JavaScript

JavaScript 基础

JavaScript 主页
JavaScript 概述
JavaScript 特性
JavaScript 启用
JavaScript 展示位置
JavaScript 语法
JavaScript hello_world
JavaScript console.log()
JavaScript 注释
JavaScript 变量
JavaScript let 语句
JavaScript 常量
JavaScript 数据类型
JavaScript 类型转换
JavaScript 严格模式
JavaScript 保留关键字

JavaScript 操作符

JavaScript 操作符
JavaScript 算术运算符
JavaScript 比较操作符
JavaScript 逻辑运算符
JavaScript 位运算符
JavaScript 赋值运算符
JavaScript 条件运算符
JavaScript typeof 运算符
JavaScript Nullish 合并运算符
JavaScript delete 运算符
JavaScript 逗号运算符
JavaScript 分组运算符
JavaScript Yield 运算符
JavaScript 扩展运算符
JavaScript 指数运算符
JavaScript 运算符优先级

JavaScript 控制流

JavaScript if...else 语句
JavaScript while 循环
JavaScript for 循环
JavaScript for...in 循环
JavaScript for...of 循环
JavaScript 循环控制
JavaScript break 语句
JavaScript continue 语句
JavaScript switch 语句
JavaScript 可迭代对象

JavaScript 函数

JavaScript 函数
JavaScript 函数表达式
JavaScript 函数参数和参数值
JavaScript 默认参数
JavaScript Function() 构造函数
JavaScript 函数提升
JavaScript 自执行函数
JavaScript 箭头函数
JavaScript 函数调用
JavaScript call() 方法
JavaScript apply() 方法
JavaScript bind() 方法
JavaScript 闭包
JavaScript 作用域
JavaScript 全局变量
JavaScript 智能函数参数

JavaScript 对象

JavaScript Number 对象
JavaScript Boolean 对象
JavaScript String 对象
JavaScript 数组对象
JavaScript 日期对象
JavaScript DataView 对象
JavaScript 处理程序
JavaScript Math 对象
JavaScript 正则表达式
JavaScript Symbol 类型
JavaScript Set 对象
JavaScript WeakSet 对象
JavaScript Map 对象
JavaScript WeakMap 对象
JavaScript 可迭代对象
JavaScript Reflect 对象
JavaScript TypedArray
JavaScript 模板字面量
JavaScript 标记模板

JavaScript 面向对象

JavaScript 对象
JavaScript 类
JavaScript 对象属性
JavaScript 对象方法
JavaScript 静态方法
JavaScript 显示对象
JavaScript 对象访问器属性
JavaScript 对象构造器
JavaScript 原型(Prototype)
JavaScript ES5 对象方法
JavaScript 封装
JavaScript 继承
JavaScript 抽象
JavaScript 多态
JavaScript 解构赋值
JavaScript 数组解构
JavaScript 嵌套解构
JavaScript 可选链
JavaScript 全局对象
JavaScript mixins
JavaScript 代理(Proxy)

JavaScript Cookies

JavaScript Cookies操作
JavaScript Cookie 属性
JavaScript 删除 Cookies

JavaScript 浏览器 BOM

JavaScript 浏览器对象模型(BOM)
JavaScript 窗口对象
JavaScript Document 对象
JavaScript 屏幕对象
JavaScript Window History 对象
JavaScript Navigator 对象
JavaScript Location 对象
JavaScript Console 对象

JavaScript Web APIs

JavaScript Web API
JavaScript History API
JavaScript 存储 API
JavaScript Forms API
JavaScript Worker API
JavaScript Fetch API
JavaScript 定位 API

JavaScript 事件

JavaScript 事件
JavaScript DOM 事件
JavaScript addEventListener()
JavaScript 鼠标事件
JavaScript 键盘事件
JavaScript 表单事件
JavaScript 窗口事件
JavaScript 事件委托
JavaScript 事件冒泡
JavaScript 事件捕获
JavaScript 自定义事件

JavaScript 错误处理

JavaScript 错误处理
JavaScript try-catch
JavaScript 调试
JavaScript 自定义错误
JavaScript 扩展错误

JavaScript 重要关键字

JavaScript this'关键字
JavaScript void 关键字
JavaScript new 关键字
JavaScript var 关键字

JavaScript HTML DOM

JavaScript HTML DOM
JavaScript DOM 方法
JavaScript 文档对象
JavaScript DOM 元素
JavaScript 文档表单
JavaScript 更改 HTML
JavaScript 更改 CSS
JavaScript DOM 动画
JavaScript DOM 导航
JavaScript DOM 集合
JavaScript 节点列表

JavaScript 杂项

JavaScript Ajax
JavaScript 异步迭代
JavaScript Atomics 对象
JavaScript 剩余参数
JavaScript 页面重定向
JavaScript 对话框
JavaScript 打印网页
JavaScript 表单验证
JavaScript 创建动画
JavaScript 多媒体
JavaScript 图像地图
JavaScript 浏览器兼容性
JavaScript JSON
JavaScript 多行字符串
JavaScript 浅拷贝
JavaScript 日期格式
JavaScript 获取日期方法
JavaScript 调用栈
JavaScript 引用类型
JavaScript 设置日期方法
JavaScript 模块
JavaScript IndexedDB
JavaScript clickjacking(点击劫持)
JavaScript 动态导入
JavaScript BigInt
JavaScript 柯里化(Currying)
JavaScript 图形库
JavaScript Blob
JavaScript Unicode
JavaScript 绘制图形
JavaScript 防抖
JavaScript 性能
JavaScript 编码规范

基础

JavaScript 主页
JavaScript 概述
JavaScript 特性
JavaScript 启用
JavaScript 展示位置
JavaScript 语法
JavaScript hello_world
JavaScript console.log()
JavaScript 注释
JavaScript 变量
JavaScript let 语句
JavaScript 常量
JavaScript 数据类型
JavaScript 类型转换
JavaScript 严格模式
JavaScript 保留关键字

操作符

JavaScript 操作符
JavaScript 算术运算符
JavaScript 比较操作符
JavaScript 逻辑运算符
JavaScript 位运算符
JavaScript 赋值运算符
JavaScript 条件运算符
JavaScript typeof 运算符
JavaScript Nullish 合并运算符
JavaScript delete 运算符
JavaScript 逗号运算符
JavaScript 分组运算符
JavaScript Yield 运算符
JavaScript 扩展运算符
JavaScript 指数运算符
JavaScript 运算符优先级

控制流

JavaScript if...else 语句
JavaScript while 循环
JavaScript for 循环
JavaScript for...in 循环
JavaScript for...of 循环
JavaScript 循环控制
JavaScript break 语句
JavaScript continue 语句
JavaScript switch 语句
JavaScript 可迭代对象

函数

JavaScript 函数
JavaScript 函数表达式
JavaScript 函数参数和参数值
JavaScript 默认参数
JavaScript Function() 构造函数
JavaScript 函数提升
JavaScript 自执行函数
JavaScript 箭头函数
JavaScript 函数调用
JavaScript call() 方法
JavaScript apply() 方法
JavaScript bind() 方法
JavaScript 闭包
JavaScript 作用域
JavaScript 全局变量
JavaScript 智能函数参数

对象

JavaScript Number 对象
JavaScript Boolean 对象
JavaScript String 对象
JavaScript 数组对象
JavaScript 日期对象
JavaScript DataView 对象
JavaScript 处理程序
JavaScript Math 对象
JavaScript 正则表达式
JavaScript Symbol 类型
JavaScript Set 对象
JavaScript WeakSet 对象
JavaScript Map 对象
JavaScript WeakMap 对象
JavaScript 可迭代对象
JavaScript Reflect 对象
JavaScript TypedArray
JavaScript 模板字面量
JavaScript 标记模板

面向对象

JavaScript 对象
JavaScript 类
JavaScript 对象属性
JavaScript 对象方法
JavaScript 静态方法
JavaScript 显示对象
JavaScript 对象访问器属性
JavaScript 对象构造器
JavaScript 原型(Prototype)
JavaScript ES5 对象方法
JavaScript 封装
JavaScript 继承
JavaScript 抽象
JavaScript 多态
JavaScript 解构赋值
JavaScript 数组解构
JavaScript 嵌套解构
JavaScript 可选链
JavaScript 全局对象
JavaScript mixins
JavaScript 代理(Proxy)

Cookies

JavaScript Cookies操作
JavaScript Cookie 属性
JavaScript 删除 Cookies

浏览器 BOM

JavaScript 浏览器对象模型(BOM)
JavaScript 窗口对象
JavaScript Document 对象
JavaScript 屏幕对象
JavaScript Window History 对象
JavaScript Navigator 对象
JavaScript Location 对象
JavaScript Console 对象

Web APIs

JavaScript Web API
JavaScript History API
JavaScript 存储 API
JavaScript Forms API
JavaScript Worker API
JavaScript Fetch API
JavaScript 定位 API

事件

JavaScript 事件
JavaScript DOM 事件
JavaScript addEventListener()
JavaScript 鼠标事件
JavaScript 键盘事件
JavaScript 表单事件
JavaScript 窗口事件
JavaScript 事件委托
JavaScript 事件冒泡
JavaScript 事件捕获
JavaScript 自定义事件

错误处理

JavaScript 错误处理
JavaScript try-catch
JavaScript 调试
JavaScript 自定义错误
JavaScript 扩展错误

重要关键字

JavaScript this'关键字
JavaScript void 关键字
JavaScript new 关键字
JavaScript var 关键字

HTML DOM

JavaScript HTML DOM
JavaScript DOM 方法
JavaScript 文档对象
JavaScript DOM 元素
JavaScript 文档表单
JavaScript 更改 HTML
JavaScript 更改 CSS
JavaScript DOM 动画
JavaScript DOM 导航
JavaScript DOM 集合
JavaScript 节点列表

杂项

JavaScript Ajax
JavaScript 异步迭代
JavaScript Atomics 对象
JavaScript 剩余参数
JavaScript 页面重定向
JavaScript 对话框
JavaScript 打印网页
JavaScript 表单验证
JavaScript 创建动画
JavaScript 多媒体
JavaScript 图像地图
JavaScript 浏览器兼容性
JavaScript JSON
JavaScript 多行字符串
JavaScript 浅拷贝
JavaScript 日期格式
JavaScript 获取日期方法
JavaScript 调用栈
JavaScript 引用类型
JavaScript 设置日期方法
JavaScript 模块
JavaScript IndexedDB
JavaScript clickjacking(点击劫持)
JavaScript 动态导入
JavaScript BigInt
JavaScript 柯里化(Currying)
JavaScript 图形库
JavaScript Blob
JavaScript Unicode
JavaScript 绘制图形
JavaScript 防抖
JavaScript 性能
JavaScript 编码规范

JavaScript 概述


上一章 下一章

一、什么是 JavaScript?

JavaScript 是一种动态计算机编程语言。它很轻量,最常作为网页的一部分使用,其实现允许客户端脚本与用户交互并创建动态页面。它是一种带有面向对象能力的解释型编程语言。

JavaScript 是一种单线程编程语言,可用于客户端或服务器端开发。它是一种动态类型编程语言,这意味着在编写 JavaScript 代码时不必关心变量的数据类型。此外,它包含了控制语句、运算符和对象,如数组、数学、日期等。

JavaScript 最初被称为 LiveScript,但 Netscape 将其名称改为 JavaScript,可能是出于 Java 所引发的兴奋。JavaScript 首次出现在 1995 年的 Netscape 2.0 中,当时的名字是 LiveScript。该语言的一般核心已经被嵌入到 Netscape 和其他 Web 浏览器中。

ECMA-262 规范定义了一个标准版本的核心 JavaScript 语言。

JavaScript 是一种轻量级的解释型编程语言。

专为创建网络中心应用程序设计。

与 Java 互补并且集成在一起。

与 HTML 互补并且集成在一起。

开放且跨平台

二、JavaScript 的历史

JavaScript 由 Netscape Communications Corporation 的计算机科学家兼程序员 Brendan Eich 开发。JavaScript 初始名为 'Mocha'。之后改名为 'LiveScript',随后又改名为 'JavaScript'。

在 1996 年至 1997 年间,欧洲计算机制造商协会 (ECMA) 标准化了 JavaScript。此后,JavaScript 经历了三次修订。

ES5(2009)引入了 Node.js,使 JavaScript 成为了服务器端语言。ES6(2015)是对 JavaScript 的一次重要修订,引入了许多高级特性。

目前,JavaScript 已经达到了 ES14 版本。ES14(ECMAScript 2023),第 14 个版本,在 2023 年 6 月发布。

客户端 JavaScript 客户端 JavaScript 是这种语言最常见的形式。脚本应包含在或由 HTML 文档引用,以便浏览器能够解释代码。

这意味着网页不必仅仅是静态的 HTML,还可以包括与用户交互、控制浏览器和动态创建 HTML 内容的程序。

JavaScript 的客户端机制比传统的 CGI 服务器端脚本提供了许多优点。例如,您可以使用 JavaScript 检查用户是否在一个表单字段中输入了有效的电子邮件地址。

当用户提交表单时,JavaScript 代码会被执行,只有当所有条目都是有效的情况下才会提交给 Web 服务器。

JavaScript 可以用于捕捉用户触发的事件,如按钮点击、链接导航以及其他用户显式或隐式触发的动作。

流行的客户端 JavaScript 库有 ReactJS、NextJS、Vue JS、Angular JS 等。

服务器端 JavaScript 早期,JavaScript 主要用于前端开发,为 HTML 页面增加行为。自 2009 年以来,JavaScript 也被用作服务器端编程语言,以构建可扩展和动态的 Web 应用程序。

Node.js 是最好的也是最流行的用于构建应用程序服务器端的 JavaScript 运行时环境之一。使用 Node.js,我们可以在浏览器之外执行 JavaScript 代码并管理服务器任务。服务器任务可以是与数据库、API 的交互、文件处理或网络通信。由于 Node.js 的事件驱动架构,它的速度比其他服务器端编程语言更快。

JavaScript 的优点 使用 JavaScript 的好处包括:

  • 减少服务器交互 —— 您可以在发送页面到服务器之前验证用户输入。这样可以减少服务器流量,意味着服务器负载更小。
  • 即时反馈给访客 —— 他们不必等待页面重新加载来查看是否遗漏了某些输入。
  • 增加交互性 —— 您可以创建用户将鼠标悬停在其上或通过键盘激活时会作出反应的界面。
  • 更丰富的界面 —— 您可以使用 JavaScript 包括拖放组件和滑块等功能,以提供一个丰富的界面给您的网站访问者。

JavaScript 的局限性 我们不能把 JavaScript 当作一个完整的编程语言来看待,因为它缺乏以下重要的功能:

  • 客户端 JavaScript 不允许读取或写入文件。这是出于安全考虑。
  • JavaScript 无法用于网络应用程序,因为没有这样的支持。
  • JavaScript 没有任何多线程功能。

再一次强调,JavaScript 是一种轻量级的解释型编程语言,它允许您在原本静态的 HTML 页面中加入互动性。

命令式 vs. 声明式 JavaScript 命令式和声明式是编程范式,JavaScript 支持这两种方式。

命令式 JavaScript —— 在命令式 JavaScript 中,我们按照描述步骤的方式编写代码以获取输出。所以我们关注的是代码执行流程和输出。例如,为了求得数组所有元素的总和,如果我们写一个循环,它就会解释每一步以得到总和。

声明式 JavaScript —— 在声明式 JavaScript 中,我们无需担心执行流程,但最终需要正确的输出。例如,我们使用内置的 array.reduce() 方法来求得数组元素的总和。在这里,我们并不关心 reduce() 方法是如何在库中实现的。

JavaScript 开发工具 JavaScript 的一大优势在于它不需要昂贵的开发工具。您可以从简单的文本编辑器如记事本开始。由于它是在 Web 浏览器上下文中解释的语言,您甚至不需要购买编译器。

以下是几种在使用 JavaScript 开发应用程序时可能会用到的免费工具。

Visual Studio Code(VS Code) —— 大多数开发者使用 VS Code 编写 JavaScript 代码。它功能丰富,并包含多种可以提高任何开发者生产力的扩展。

Chrome 开发工具 —— 程序员可以使用 Chrome 开发工具调试 JavaScript 代码。然而,他们也可以使用任何浏览器的调试工具,因为大多数浏览器都自带调试工具。

以上两种工具提高了开发者编写代码的效率。此外,您还可以使用其他工具如 Git 进行版本控制,Webpack 构建应用程序等。

JavaScript 现状 2015 年,JavaScript 发布了带有重大改进的 ES6 版本,包括面向对象的概念、匿名函数、模板文字等。2023 年 6 月,发布了 ES14(ECMAScript 2023),即 JavaScript 的第 14 个版本。

上一章 下一章
阅读号二维码

关注阅读号

联系二维码

联系我们

© 2024 Yoagoa. All rights reserved.

粤ICP备18007391号

站点地图