JavaScript语法基础
JavaScript语法基础是学习JavaScript的第一步,包括变量声明、数据类型、运算符和表达式等内容。
变量
变量是用于存储数据的容器,在JavaScript中可以使用var、let或const关键字声明变量。
var声明
var是ES5及之前版本的变量声明方式:
javascript
var name = "John";
var age = 30;
特点:
- 函数作用域
- 变量提升
- 可以重复声明
let声明
let是ES6引入的块级作用域变量声明方式:
javascript
let name = "John";
let age = 30;
特点:
- 块级作用域(
{}内) - 不存在变量提升
- 不能在同一作用域重复声明
const声明
const用于声明常量,值一旦赋值就不能更改:
javascript
const PI = 3.14159;
const NAME = "JavaScript";
特点:
- 块级作用域
- 不存在变量提升
- 必须初始化赋值
- 基本类型值不可修改
- 引用类型(对象、数组)的内容可以修改
数据类型
JavaScript有8种数据类型,分为基本类型和引用类型:
基本类型
-
字符串(String):文本数据,用单引号或双引号包裹
javascriptlet name = "John"; let message = 'Hello, World!'; -
数字(Number):整数或浮点数
javascriptlet age = 30; let price = 9.99; -
布尔值(Boolean):
true或falsejavascriptlet isActive = true; let isDone = false; -
空值(Null):表示一个空的或不存在的引用
javascriptlet user = null; -
未定义(Undefined):表示变量声明但未赋值
javascriptlet x; console.log(x); // undefined -
符号(Symbol):ES6引入的唯一且不可变的数据类型
javascriptconst sym1 = Symbol("description"); const sym2 = Symbol("description"); console.log(sym1 === sym2); // false -
大整数(BigInt):ES11引入的任意精度整数
javascriptconst bigNumber = 123456789012345678901234567890n;
引用类型
- 对象(Object):复杂数据结构
javascript
let person = { name: "John", age: 30, isActive: true };
数据类型检测
typeof运算符
typeof运算符用于检测变量的数据类型:
javascript
console.log(typeof "Hello"); // string
console.log(typeof 42); // number
console.log(typeof true); // boolean
console.log(typeof null); // object (这是一个历史遗留问题)
console.log(typeof undefined); // undefined
console.log(typeof Symbol("sym")); // symbol
console.log(typeof 123n); // bigint
console.log(typeof {}); // object
console.log(typeof []); // object (数组是特殊的对象)
console.log(typeof function(){}); // function
instanceof运算符
instanceof运算符用于检测对象的构造函数:
javascript
console.log([] instanceof Array); // true
console.log({} instanceof Object); // true
console.log(new Date() instanceof Date); // true
运算符
JavaScript支持多种运算符,用于执行不同类型的操作。
算术运算符
用于执行数学运算:
| 运算符 | 描述 | 示例 |
|---|---|---|
| + | 加法 | 5 + 3 // 8 |
| - | 减法 | 5 - 3 // 2 |
| * | 乘法 | 5 * 3 // 15 |
| / | 除法 | 5 / 3 // 1.666… |
| % | 取模(余数) | 5 % 3 // 2 |
| ++ | 自增 | let x = 5; x++; // 6 |
| – | 自减 | let x = 5; x–; // 4 |
| ** | 幂运算 | 5 ** 3 // 125 |
赋值运算符
用于给变量赋值:
| 运算符 | 描述 | 示例 |
|---|---|---|
| = | 简单赋值 | let x = 5; |
| += | 加后赋值 | x += 3; // 等同于 x = x + 3 |
| -= | 减后赋值 | x -= 3; // 等同于 x = x - 3 |
| *= | 乘后赋值 | x *= 3; // 等同于 x = x * 3 |
| /= | 除后赋值 | x /= 3; // 等同于 x = x / 3 |
| %= | 取模后赋值 | x %= 3; // 等同于 x = x % 3 |
| **= | 幂运算后赋值 | x **= 3; // 等同于 x = x ** 3 |
比较运算符
用于比较两个值:
| 运算符 | 描述 | 示例 |
|---|---|---|
| == | 等于(值相等) | 5 == “5” // true |
| === | 严格等于(值和类型都相等) | 5 === “5” // false |
| != | 不等于 | 5 != “5” // false |
| !== | 严格不等于 | 5 !== “5” // true |
| > | 大于 | 5 > 3 // true |
| < | 小于 | 5 < 3 // false |
| >= | 大于等于 | 5 >= 5 // true |
| <= | 小于等于 | 5 <= 3 // false |
逻辑运算符
用于逻辑运算:
| 运算符 | 描述 | 示例 |
|---|---|---|
| && | 逻辑与 | true && false // false |
| || | 逻辑或 | true || false // true |
| ! | 逻辑非 | !true // false |
三元运算符
三元运算符是一种条件表达式,格式为:条件 ? 表达式1 : 表达式2
javascript
let age = 18;
let status = age >= 18 ? "成年人" : "未成年人";
// status的值为"成年人"
表达式
表达式是由变量、常量、运算符和函数调用组成的代码片段,它会产生一个值。
算术表达式
javascript
let result = 5 + 3 * 2;
// result的值为11
字符串表达式
javascript
let name = "John";
let greeting = "Hello, " + name;
// greeting的值为"Hello, John"
逻辑表达式
javascript
let isAdult = age >= 18;
let canVote = isAdult && hasCitizenship;
函数调用表达式
javascript
let now = Date.now();
let upperCaseName = name.toUpperCase();
注释
注释用于解释代码,JavaScript支持两种注释方式:
单行注释
使用//开头:
javascript
// 这是一个单行注释
let x = 5; // 这是一个变量声明
多行注释
使用/*开头,*/结尾:
javascript
/*
这是一个多行注释
可以包含多行文本
*/
let y = 10;
命名规范
JavaScript的命名规范:
-
变量名:使用驼峰命名法(camelCase)
javascriptlet userName = "John"; let userAge = 30; -
常量名:使用全大写,单词间用下划线分隔
javascriptconst MAX_SIZE = 100; const API_KEY = "abc123"; -
函数名:使用驼峰命名法
javascriptfunction calculateSum(a, b) { return a + b; } -
类名:使用帕斯卡命名法(PascalCase)
javascriptclass User { constructor(name, age) { this.name = name; this.age = age; } }
继续学习:JavaScript控制流程
最后更新:2026-02-08