Web - JavaScript 流程控制语句与数组

149 阅读5分钟

概述

这份 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

数组的常用方法

  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]
  1. 元素增删
// 添加元素
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]
  1. 元素查找
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
  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
  1. 判断数组
const arr = [1, 2, 3];

// 判断所有元素是否满足条件
const allEven = arr.every(num => num % 2 === 0); // false

// 判断是否有元素满足条件
const hasEven = arr.some(num => num % 2 === 0); // true
  1. 复制与切片
const arr = [1, 2, 3, 4];

// 复制数组
const copy = arr.slice(); // [1, 2, 3, 4]

// 切片数组
const sliced = arr.slice(1, 3); // [2, 3](包含索引1,不包含索引3)
  1. 迭代数组
const arr = [1, 2, 3];

// forEach循环
arr.forEach(num => {
  console.log(num);
});

// entries() 返回索引和值的迭代器
for (const [index, value] of arr.entries()) {
  console.log(index, value);
}