一、注释
注释是代码中不被执行的部分,用于说明代码功能。
- 单行注释 :
// 这是单行注释
- 多行注释 :
/* 这是多行注释 */
二、变量声明
JavaScript 中有三种变量声明方式,区别如下:
| 关键字 |
作用域 |
变量提升 |
重复声明 |
重新赋值 |
var |
函数作用域 |
✅ |
✅ |
✅ |
let |
块级作用域 |
❌ |
❌ |
✅ |
const |
块级作用域 |
❌ |
❌ |
❌ |
示例:
复制代码
var a = 1;
let b = 2;
const c = 3; // 声明时必须赋值,且后续不能修改
三、数据类型
JavaScript 数据类型分为基本类型 和引用类型。
1. 基本类型
| 类型 |
说明 |
示例 |
Number |
数字(整数、小数、NaN) |
10, 3.14, NaN |
String |
字符串(单 / 双引号 / 反引号) |
'hello', "world", 模板字符串${a} |
Boolean |
布尔值 |
true, false |
Null |
空值 |
null |
Undefined |
未定义(变量声明未赋值) |
let x; console.log(x); |
Symbol |
唯一值(ES6 新增) |
Symbol('id') |
BigInt |
大整数(ES2020 新增) |
10n |
2. 引用类型
| 类型 |
说明 |
示例 |
Object |
对象(键值对集合) |
{name: 'Tom', age: 18} |
Array |
数组(有序数据集合) |
[1, 2, 3] |
Function |
函数 |
function fn() {} |
3. 类型判断
typeof:判断基本类型(null 会返回 'object',是历史遗留问题)
instanceof:判断引用类型(如 [] instanceof Array 返回 true)
四、运算符
1. 算术运算符
| 运算符 |
说明 |
示例 |
+ |
加 |
1 + 2 |
- |
减 |
3 - 1 |
* |
乘 |
2 * 3 |
/ |
除 |
6 / 2 |
% |
取余 |
5 % 2 |
++ |
自增 |
a++ / ++a |
-- |
自减 |
a-- / --a |
2. 赋值运算符
| 运算符 |
说明 |
示例 |
= |
赋值 |
a = 1 |
+= |
加后赋值 |
a += 2 → a = a + 2 |
-= |
减后赋值 |
a -= 1 → a = a - 1 |
3. 比较运算符
| 运算符 |
说明 |
示例 |
== |
相等(值相等) |
1 == '1' → true |
=== |
严格相等(值和类型都相等) |
1 === '1' → false |
!= |
不等 |
1 != 2 → true |
!== |
严格不等 |
1 !== '1' → true |
> |
大于 |
3 > 2 |
< |
小于 |
1 < 2 |
>= |
大于等于 |
3 >= 3 |
<= |
小于等于 |
2 <= 3 |
4. 逻辑运算符
| 运算符 |
说明 |
示例 |
|
|
|
|
&& |
与(都为 true 才返回 true) |
true && false → false |
|
|
|
|
| ` |
|
` |
或(一个为 true 就返回 true) |
`true |
|
false→true` |
! |
非(取反) |
!true → false |
|
|
|
|
5. 三元运算符
- 语法:
条件 ? 表达式1 : 表达式2
- 示例:
let result = 1 > 2 ? 'yes' : 'no'; // 'no'
五、流程控制
1. 条件语句
if-else
复制代码
let age = 18;
if (age >= 18) {
console.log('成年');
} else {
console.log('未成年');
}
switch
复制代码
let day = 1;
switch (day) {
case 1:
console.log('周一');
break;
case 2:
console.log('周二');
break;
default:
console.log('其他');
}
2. 循环语句
for 循环
复制代码
for (let i = 0; i < 5; i++) {
console.log(i); // 0 1 2 3 4
}
while 循环
复制代码
let i = 0;
while (i < 5) {
console.log(i);
i++;
}
do-while 循环(至少执行一次)
复制代码
let i = 0;
do {
console.log(i);
i++;
} while (i < 5);
六、函数
函数是可重复使用的代码块。
1. 函数声明
复制代码
function add(a, b) {
return a + b;
}
add(1, 2); // 3
2. 函数表达式
复制代码
const multiply = function(a, b) {
return a * b;
};
multiply(2, 3); // 6
3. 箭头函数(ES6 新增)
复制代码
const subtract = (a, b) => a - b;
subtract(5, 3); // 2
4. 参数与返回值
- 默认参数 :
function fn(a = 1) {}
- 剩余参数 :
function fn(...args) {}(args 是数组)
- 返回值 :用
return 返回,无 return 则返回 undefined
七、对象
对象是键值对的集合,键称为 "属性",值可以是任意类型。
1. 对象字面量
复制代码
const person = {
name: 'Tom',
age: 18,
sayHi: function() {
console.log('Hi');
}
};
2. 属性访问
复制代码
console.log(person.name); // 'Tom'(点语法)
console.log(person['age']); // 18(方括号语法,适用于属性名含特殊字符的情况)
3. 方法调用
复制代码
person.sayHi(); // 'Hi'
八、数组
数组是有序的数据集合,可存储任意类型的数据。
1. 数组创建
复制代码
const arr1 = [1, 2, 3]; // 字面量方式(推荐)
const arr2 = new Array(1, 2, 3); // 构造函数方式
2. 常用方法
| 方法 |
说明 |
示例 |
push |
末尾添加元素 |
arr.push(4) → [1,2,3,4] |
pop |
末尾删除元素 |
arr.pop() → 返回 4,数组变为 [1,2,3] |
unshift |
开头添加元素 |
arr.unshift(0) → [0,1,2,3] |
shift |
开头删除元素 |
arr.shift() → 返回 0,数组变为 [1,2,3] |
map |
遍历数组,返回新数组 |
arr.map(x => x*2) → [2,4,6] |
filter |
过滤数组,返回符合条件的新数组 |
arr.filter(x => x>2) → [3] |
九、基础语法汇总表格
| 分类 |
核心知识点 |
| 变量声明 |
var(函数作用域)、let/const(块级作用域,推荐) |
| 数据类型 |
基本类型(7 种)+ 引用类型(Object/Array/Function) |
| 运算符 |
算术、赋值、比较(=== 推荐)、逻辑、三元 |
| 流程控制 |
if-else、switch、for、while、do-while |
| 函数 |
声明、表达式、箭头函数、默认参数、剩余参数 |
| 对象 |
字面量创建、属性访问(点 / 方括号)、方法调用 |
| 数组 |
字面量创建、push/pop/map/filter 等常用方法 |