- 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 - 空值合并运算符
- JavaScript - 删除运算符
- 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 Case
- JavaScript - 用户定义迭代器
- JavaScript 函数
- JavaScript - 函数
- JavaScript - 函数表达式
- JavaScript - 函数参数
- JavaScript - 默认参数
- JavaScript - Function() 构造函数
- JavaScript - 函数提升
- JavaScript - 自执行函数
- JavaScript - 箭头函数
- JavaScript - 函数调用
- JavaScript - Function call()
- JavaScript - Function apply()
- JavaScript - Function bind()
- JavaScript - 闭包
- JavaScript - 变量作用域
- JavaScript - 全局变量
- JavaScript - 智能函数参数
- JavaScript 对象
- JavaScript - Number
- JavaScript - Boolean
- JavaScript - Strings
- JavaScript - Arrays
- JavaScript - Date
- JavaScript - DataView
- JavaScript - Handler
- JavaScript - Math
- JavaScript - RegExp
- JavaScript - Symbol
- JavaScript - Sets
- JavaScript - WeakSet
- JavaScript - Maps
- JavaScript - WeakMap
- JavaScript - 可迭代对象
- JavaScript - Reflect
- JavaScript - TypedArray
- JavaScript - 模板字面量
- JavaScript - 带标签的模板
- 面向对象 JavaScript
- JavaScript - 对象
- JavaScript - 类
- JavaScript - 对象属性
- JavaScript - 对象方法
- JavaScript - 静态方法
- JavaScript - 显示对象
- JavaScript - 对象访问器
- JavaScript - 对象构造函数
- JavaScript - 原生原型
- JavaScript - ES5 对象方法
- JavaScript - 封装
- JavaScript - 继承
- JavaScript - 抽象
- JavaScript - 多态
- JavaScript - 解构赋值
- JavaScript - 对象解构
- JavaScript - 数组解构
- JavaScript - 嵌套解构
- JavaScript - 可选链
- JavaScript - 全局对象
- JavaScript - Mixins
- JavaScript - 代理
- JavaScript 版本
- JavaScript - 历史
- JavaScript - 版本
- JavaScript - ES5
- JavaScript - ES6
- ECMAScript 2016
- ECMAScript 2017
- ECMAScript 2018
- ECMAScript 2019
- ECMAScript 2020
- ECMAScript 2021
- ECMAScript 2022
- JavaScript 异步
- JavaScript - 异步
- JavaScript - 回调函数
- JavaScript - Promises
- JavaScript - Async/Await
- JavaScript - 微任务
- JavaScript - Promisification
- JavaScript - Promises 链式调用
- JavaScript - 定时事件
- JavaScript - setTimeout()
- JavaScript - setInterval()
- JavaScript Cookies
- JavaScript - Cookies
- JavaScript - Cookie 属性
- JavaScript - 删除 Cookies
- JavaScript 浏览器 BOM
- JavaScript - 浏览器对象模型
- JavaScript - Window 对象
- JavaScript - Document 对象
- JavaScript - Screen 对象
- JavaScript - History 对象
- JavaScript - Navigator 对象
- JavaScript - Location 对象
- JavaScript - Console 对象
- JavaScript Web APIs
- JavaScript - Web API
- JavaScript - History API
- JavaScript - Storage API
- JavaScript - Forms API
- JavaScript - Worker API
- JavaScript - Fetch API
- JavaScript - Geolocation API
- JavaScript 事件
- JavaScript - 事件
- JavaScript - DOM 事件
- JavaScript - addEventListener()
- JavaScript - 鼠标事件
- JavaScript - 键盘事件
- JavaScript - 表单事件
- JavaScript - Window/Document 事件
- 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 - DOM Document
- JavaScript - DOM 元素
- JavaScript - DOM 属性 (Attr)
- JavaScript - DOM 表单
- JavaScript - 更改 HTML
- JavaScript - 更改 CSS
- JavaScript - DOM 动画
- JavaScript - DOM 导航
- JavaScript - DOM 集合
- JavaScript - DOM NodeList
- JavaScript - DOM DOMTokenList
- JavaScript 杂项
- JavaScript - Ajax
- JavaScript - 异步迭代
- JavaScript - Atomics 对象
- JavaScript - Rest 参数
- JavaScript - 页面重定向
- JavaScript - 对话框
- JavaScript - 页面打印
- JavaScript - 验证
- JavaScript - 动画
- JavaScript - 多媒体
- JavaScript - 图像地图
- JavaScript - 浏览器
- JavaScript - JSON
- JavaScript - 多行字符串
- JavaScript - 日期格式
- JavaScript - 获取日期方法
- JavaScript - 设置日期方法
- JavaScript - 模块
- JavaScript - 动态导入
- JavaScript - BigInt
- JavaScript - Blob
- JavaScript - Unicode
- JavaScript - 浅拷贝
- JavaScript - 调用栈
- JavaScript - 引用类型
- JavaScript - IndexedDB
- JavaScript - Clickjacking 攻击
- JavaScript - 柯里化
- JavaScript - 图形
- JavaScript - Canvas
- JavaScript - 防抖
- JavaScript - 性能
- JavaScript - 样式指南
JavaScript - 语法
JavaScript 语法
JavaScript 语法包含一组规则,用于定义如何构建 JavaScript 代码。JavaScript 可以使用 JavaScript 语句来实现,这些语句放置在网页中的<script>... </script> HTML 标签内。
您可以将包含 JavaScript 的<script> 标签放置在网页中的任何位置,但通常建议您将其保留在<head> 标签内。
<script> 标签提醒浏览器程序开始将这些标签之间的所有文本解释为脚本。JavaScript 的简单语法如下所示。
<script ...> JavaScript code </script><script> 标签采用两个重要的属性:
Language - 此属性指定您正在使用的脚本语言。通常,其值为 javascript。尽管最近版本的 HTML(及其后续版本 XHTML)已逐步淘汰此属性的使用。
Type - 此属性现在建议用于指示正在使用的脚本语言,其值应设置为“text/javascript”。JavaScript 已成为 HTML5 中的默认语言,并且现代浏览器也默认支持,因此现在无需添加type属性。
因此,您的 JavaScript 代码段将如下所示:
<script language = "javascript" type = "text/javascript"> JavaScript code </script>
您的第一个 JavaScript 代码
让我们以一个打印“Hello World”的示例为例。我们调用document.write 方法,该方法将字符串写入我们的 HTML 文档。此方法可用于写入文本、HTML 或两者。
<html> <head> <title> Your first JavaScript program </title> <head> <body> <script language = "javascript" type = "text/javascript"> document.write("Hello World!") </script> </body> </html>
此代码将产生以下结果:
Hello World!
JavaScript 值
在 JavaScript 中,您可以使用两种类型的值。
固定值(字面量)
变量(动态值)
JavaScript 字面量
在下面的代码中,10 是一个数字字面量,而“Hello”是一个字符串字面量。
<html> <body> <script> document.write(10); // Number Literal document.write("<br />"); // To add line-break document.write("Hello"); // String Literal </script> </body> </html>
此代码将产生以下结果:
10 Hello
JavaScript 变量
在 JavaScript 中,变量用于存储动态数据。
您可以在 JavaScript 中使用以下关键字来定义变量。
- var
- let
- const
您可以使用赋值运算符(等号)将值赋给变量。
在下面的代码中,变量 a 包含数值,变量 b 包含文本(字符串)。
<html> <body> <script> let a = 5; // Variable Declaration document.write(a); // Using variable document.write("<br>"); let b = "One"; document.write(b); </script> </body> </html>
此代码将产生以下结果:
5 One
空格和换行符
JavaScript 会忽略 JavaScript 程序中出现的空格、制表符和换行符。您可以在程序中自由使用空格、制表符和换行符,并且可以自由地以整洁一致的方式格式化和缩进程序,使代码易于阅读和理解。
分号是可选的
JavaScript 中的简单语句通常后面跟着分号字符,就像在 C、C++ 和 Java 中一样。但是,如果每个语句都放在单独一行,JavaScript 允许您省略此分号。例如,以下代码可以在没有分号的情况下编写。
<script> var1 = 10 var2 = 20 </script>
但是,当以如下所示的单行格式化时,必须使用分号:
<script> var1 = 10; var2 = 20; </script>
建议使用分号是一种良好的编程习惯。
大小写敏感
JavaScript 是一种大小写敏感的语言。这意味着语言关键字、变量、函数名以及任何其他标识符必须始终使用一致的大写字母进行键入。
因此,标识符Time 和TIME 在 JavaScript 中将具有不同的含义。
在下面的代码中,我们比较了“time”和“Time”字符串,它返回 false。
<html> <body> <script> let a = "time"; let b = "Time"; document.write("a == b? " + (a == b)); </script> </body> </html>
此代码将产生以下结果:
a == b? false
在编写 JavaScript 中的变量和函数名称时,应注意。
JavaScript 和驼峰命名法
帕斯卡命名法(Pascal Case)− 我们可以创建像 SmartWatch、MobileDevice、WebDrive 这样的变量。它表示大驼峰式命名法字符串。
小驼峰命名法(Lower Camel Case)− JavaScript 允许开发人员使用像 smartwatch、mobileDevice、webDriver 这样的变量名和表达式名。这里第一个字符是小写。
下划线命名法(Underscore)− 我们可以使用下划线声明变量,例如 smart_watch、mobile_device、web_driver 等。
JavaScript 不允许在变量名或表达式名中添加连字符。
JavaScript 关键字
JavaScript 包含多个关键字,我们可以将其用于特定任务。例如,function 关键字可用于定义函数。let、var 和 const 关键字可用于定义变量。
让我们通过下面的示例了解关键字的使用。
示例
在这个示例中,我们使用了 function 关键字来定义函数。我们在函数内部使用了 var 关键字来定义 sum 变量。
此外,我们还在函数外部使用了 let 和 const 关键字来定义两个变量并用值初始化它们。之后,我们使用函数名调用函数,并将变量作为参数传递。
<html> <body> <script> function getSum(first, second) { var sum = first * second; document.write("The product of " + first + " and " + second + " is " + sum); } let first = 3; const second = 4; getSum(first, second); </script> </body> </html>
此代码将产生以下结果:
The product of 3 and 4 is 12
JavaScript 不允许使用 of 关键字作为变量名或表达式名。
JavaScript 标识符
在 JavaScript 中,标识符是变量、函数、对象等的名称。
例如,在下面的代码中,p 是一个标识符。
<script> pet p = 90; </script>
在下面的代码中,'test' 是一个标识符。
<script> function test() { } </script>
以下是你应该遵循的定义有效标识符的规则。
标识符应始终以字母字符 (A-Z、a-z)、$(美元符号) 或 _(下划线)开头。
它不应该以数字或连字符开头。
标识符也可以包含数字,除了开头之外。
JavaScript 中的注释
JavaScript 支持 C 样式和 C++ 样式的注释,因此 −
// 和行尾之间的任何文本都被视为注释,JavaScript 会忽略它。
/* 和 */ 之间的任何文本都被视为注释。这可能跨越多行。
JavaScript 也识别 HTML 注释起始序列 <!--。JavaScript 将其视为单行注释,就像 // 注释一样。
HTML 注释结束序列 --> 未被 JavaScript 识别,因此应写为 //-->。
示例
以下示例显示了如何在 JavaScript 中使用注释。
<script> // This is a comment. It is similar to comments in C++ /* * This is a multi-line comment in JavaScript * It is very similar to comments in C Programming */ </script>
JavaScript 中的操作符
JavaScript 包含各种算术、逻辑、位运算等操作符。我们可以在 JavaScript 中使用任何操作符,如下面的示例所示。
示例
在这个示例中,我们定义了 var1 和 va2 并用数字值初始化它们。之后,我们使用 ‘*’ 操作符获取 var1 和 var2 的乘积结果。
<html> <body> <script> var1 = 10 var2 = 20 var3 = var1 * var2; var4 = 10 + 20; document.write(var3, " " ,var4); </script> </body> </html>
此代码将产生以下结果:
200 30
通过这种方式,程序员可以使用其他操作符和操作数。
当 ‘+’ 操作符的两个操作数中的任何一个为字符串时,它会将另一个操作数转换为字符串,并将两个字符串合并。
JavaScript 中的表达式
你可以通过组合变量、值和操作符在 JavaScript 中创建表达式。
例如,下面的表达式将两个数字相加。
10 + 20;
下面的表达式将两个变量的值相乘。
a * b;
下面的表达式将变量 c 的值除以 2。
c / 2;
示例
在下面的代码中,我们使用了赋值和算术表达式。
<html> <body> <script> let a = 10; let b = 2; let c = a; // Assigning a value of a to c. Assignment expression. let d = a + b; // Adding a and b. Arithmetic expression. let e = a - b; // Subtracting b from a. document.write("c = " + c + "<br>"); document.write("d = " + d + "<br>"); document.write("e = " + e + "<br>"); </script> </body> </html>
此代码将产生以下结果:
c = 10 d = 12 e = 8
我们将在接下来的章节中探索更多表达式。
JavaScript 字符集
JavaScript 包含一组 Unicode 字符。
Unicode 字符在文本中添加特殊字符,例如表情符号、符号等。
例如,下面的 Unicode 字符将显示左箭头。
&larr
下面的 Unicode 字符将显示 RS(卢比符号)符号。
8360
然而,JavaScript 中有很多语法需要我们学习,在一章中不可能全部涵盖。因此,在本节中,我们只介绍了基本的语法,以便开始学习 JavaScript,我们将在接下来的章节中介绍其他语法。