概述
这份 JavaScript 知识总结超实用!涵盖流程控制语句(if、switch、循环等)与数组核心内容,代码示例丰富易懂,从基础语法到常用方法全覆盖,适合新手快速入门或查漏补缺,助你轻松掌握 JS 编程关键知识点!
流程控制语句
1.if语句
- if语句是最简单的条件语句,也称选择语句,如果if语句体中只有一行语句,可以省略大括号和换行。
const number = Number(prompt("请输入一个数字"));
if (number % 2 === 0) {
alert("偶数");
} else {
alert("奇数");
}
2.if-else if-else-if 语句,属于多路分支。
const score = 85;
if (score >= 90) {
console.log("成绩等级:A");
} else if (score >= 80) {
console.log("成绩等级:B");
} else if (score >= 70) {
console.log("成绩等级:C");
} else if (score >= 60) {
console.log("成绩等级:D");
} else {
console.log("成绩等级:F");
}
3.swith语句,除if语句之外,JavaScript提供了另外一种选择语句swith语句,swith语句的用途,当一个变量被分类讨论的情形。
const month = 3;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
console.log("这个月有31天");
break;
}
4.三元运算符
- JavaScript中提供了一种叫做三元运算的语法形式,让我们可以方便地实现选择。
- 问号前面是判断的条件,问号后面用冒号隔开两个表达式。当条件表达式为真时调用表达式1,为假时调用表达式2。
const age = 24;
const name = age > 18 ? '成年人' : "未成年人";
console.log(name);
5.for循环
for在英语中没有特别的含义,其名称来源于1958年代的早期汇编语言,现在几乎世界上所有编程语言中都用for表示循环语句。
for (let i = 1; i <=10 ; i++){
console.log(i);
}
for (let i = 18; i >=-6 ; i-=4){
console.log(i);
}
for的圆括号中有三个表达式:
- 表达式
vari=1;表示定义一个“循环变量” i,并赋值为1; - 表达式
i<=10;表示继续执行循环的条件,只要这个条件为真,则会一直执行; - 表达式
i++用来更新循环变量,使循环变量的值越来越趋向终点。
6.while语句
- while语句也是一种循环结构,是一种“不定范围”循环,和for循环各有不同的用武之地,while语句事先不指定循环开始、结束的范围,只要测试条件满足,就一直执行循环体
// 初始化变量
let sum = 0;
let number = 1;
// 使用 while 循环计算 1 到 5 的和
while (number <= 5) {
sum += number; // 累加当前数字到总和
number++; // 递增数字
}
// 输出结果
console.log("1 到 5 的和是:", sum); // 输出: 15
while循环注意事项:
- while循环没有显式定义循环变量,必须自己在while循环外先定义好循环变量,有时甚至可以没有循环变量。
- 循环体内的语句,必须使循环测试条件趋向不成立,否则会死循环
7. break 和 continue
- break表示立即终止循环,它只能用在循环语句中,在for循环和while循环中都可以使用
- continue用于跳过循环中的一个迭代,并继续执行循环中的下一个迭代,for循环更经常使用continue
8.do while循环
do while循环是一种“后测试循环语句”它不同于for循环和while循环每次都是“先测试条件是否满足,然后执行循环体”,do-while循环是“先执行循环体,然后测试条件是否满足
数组
数组(Array),顾名思义,用来存储一组相关的值,从而方便进行求和、计算平均数、逐项遍历等操作,它是一种非常重要的数据结构。
数组的定义
1、使用数组字面量,这是定义数组最常用的方式,只需用方括号把数组元素括起来就行。
let fruits = ['apple', 'banana', 'cherry'];
let numbers = [1, 3, 5, 7];
let mixed = [1, 'hello', true, null];
let empty = []; // 空数组
2、使用 Array 构造函数
let fruits = new Array('apple', 'banana', 'cherry');
let numbers = new Array(1, 3, 5, 7);
要注意,如果只给Array构造函数传入一个数值参数,它会创建一个指定长度的空数组,而非包含这个数值的数组。
下面的代码表示定义一个长度为5的数组,但是这5项都是undefined
let emptyWithLength = new Array(5); // 生成一个长度为5的空数组
数组的注意事项
- 下标越界:JavaScript规定,访问数组中不存在的项会返回undefined,不会报错
- 数组的length属性表示它的长度,数组最后一项的下标是数组的长度减1
数组的常用方法
- 数组操作
// 合并数组
const arr1 = [1, 2];
const arr2 = [3, 4];
const merged = arr1.concat(arr2); // [1, 2, 3, 4]
// 转为字符串
const arr = [1, 2, 3];
const str = arr.join('-'); // "1-2-3"
// 反转数组
const reversed = arr.reverse(); // [3, 2, 1]
// 排序数组
const sorted = [3, 1, 2].sort((a, b) => a - b); // [1, 2, 3]
- 元素增删
// 添加元素
const arr = [1, 2];
arr.push(3); // [1, 2, 3]
arr.unshift(0); // [0, 1, 2, 3]
// 删除元素
arr.pop(); // [0, 1, 2]
arr.shift(); // [1, 2]
// 任意位置增删
const arr = [1, 2, 3, 4];
arr.splice(1, 2, 5, 6); // 从索引1开始删除2个元素,并插入5和6 => [1, 5, 6, 4]
- 元素查找
const arr = [1, 2, 3, 4];
// 判断元素是否存在
const hasTwo = arr.includes(2); // true
// 查找元素索引
const index = arr.indexOf(3); // 2
// 查找满足条件的元素
const even = arr.find(num => num % 2 === 0); // 2
const evenIndex = arr.findIndex(num => num % 2 === 0); // 1
- 数组过滤与转换
const arr = [1, 2, 3, 4];
// 过滤数组
const filtered = arr.filter(num => num > 2); // [3, 4]
// 映射数组
const squared = arr.map(num => num * num); // [1, 4, 9, 16]
// 归约数组
const sum = arr.reduce((acc, curr) => acc + curr, 0); // 10
- 判断数组
const arr = [1, 2, 3];
// 判断所有元素是否满足条件
const allEven = arr.every(num => num % 2 === 0); // false
// 判断是否有元素满足条件
const hasEven = arr.some(num => num % 2 === 0); // true
- 复制与切片
const arr = [1, 2, 3, 4];
// 复制数组
const copy = arr.slice(); // [1, 2, 3, 4]
// 切片数组
const sliced = arr.slice(1, 3); // [2, 3](包含索引1,不包含索引3)
- 迭代数组
const arr = [1, 2, 3];
// forEach循环
arr.forEach(num => {
console.log(num);
});
// entries() 返回索引和值的迭代器
for (const [index, value] of arr.entries()) {
console.log(index, value);
}