跳到主要内容JavaScript 流程控制与数组基础实战 | 极客日志JavaScriptNode.js大前端
JavaScript 流程控制与数组基础实战
JavaScript 运算符、条件语句、循环语句及数组操作的基础教程。涵盖算术、逻辑、位运算,if/switch/三元表达式,while/for 循环及 continue/break 用法。介绍数组创建、元素访问、增删改查方法如 push/splice/length。适合初学者掌握 JavaScript 核心语法结构。
运算符
JavaScript 中的运算符和 Java 用法基本相同,此处不做详细介绍。
算术运算符
赋值运算符 & 复合赋值运算符
自增自减运算符
比较运算符
<
>
<=
>=
==: 比较相等(会进行隐式类型转换)
!=
===: 比较相等(不会进行隐式类型转换)
!==
逻辑运算符
用于计算多个 boolean 表达式的值。
&&: 与(一假则假)
||: 或(一真则真)
!: 非
位运算
&: 按位与
|: 按位或
~: 按位取反
^: 按位异或
移位运算
<<: 左移
>>: 有符号右移(算术右移)
>>>: 无符号右移(逻辑右移)
条件语句
if 语句
基本语法格式:条件表达式为 true,则执行 if 的 {} 中的代码。
if (条件) { 语句 }
if (条件 1) { 语句 1 } else { 语句 2 }
if (条件 ) { 语句 } (条件 ) { 语句 } { 语句 N }
微信扫一扫,关注极客日志
微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
相关免费在线工具
- Keycode 信息
查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
- Escape 与 Native 编解码
JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
- JavaScript / HTML 格式化
使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online
- JavaScript 压缩与混淆
Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online
- Base64 字符串编码/解码
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
- Base64 文件转换器
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
1
1
else
if
2
2
else
var num = 10;
if (num % 2 == 0) {
console.log("num 是偶数");
} else {
console.log("num 是奇数");
}
注意!不能写成 num % 2 == 1 就是奇数,负的奇数 % 2 结果可能是 -1。
var num = 10;
if (num > 0) {
console.log("num 是正数");
} else if (num < 0) {
console.log("num 是负数");
} else {
console.log("num 是 0");
}
var year = 2000;
if (year % 100 == 0) {
if (year % 400 == 0) {
console.log("是闰年");
} else {
console.log("不是闰年");
}
} else {
if (year % 4 == 0) {
console.log("是闰年");
} else {
console.log("不是闰年");
}
}
三元表达式
条件为真,返回表达式 1 的值;条件为假,返回表达式 2 的值。注意,三元表达式的优先级是比较低的。
switch
switch (表达式) {
case 值 1:
语句 1;
break;
case 值 2:
语句 2;
break;
default:
语句 N;
}
var day = prompt("请输入今天星期几:");
switch (parseInt(day)) {
case 1:
console.log("星期一");
break;
case 2:
console.log("星期二");
break;
case 3:
console.log("星期三");
break;
case 4:
console.log("星期四");
break;
case 5:
console.log("星期五");
break;
case 6:
console.log("星期六");
break;
case 7:
console.log("星期日");
break;
default:
console.log("输入有误");
}
循环语句
while 循环
- 先执行条件语句
- 条件为 true,执行循环体代码
- 条件为 false,直接结束循环
var num = 1;
while (num <= 10) {
console.log(num);
num++;
}
var result = 1;
var i = 1;
while (i <= 5) {
result *= i;
i++;
}
console.log(result);
continue
结束这次循环(比如:吃五个李子,发现第三个李子有虫子,扔掉这个,继续吃下一个)。
var i = 1;
while (i <= 5) {
if (i == 3) {
i++;
continue;
}
console.log("我在吃第" + i + "个李子");
i++;
}
我在吃第 1 个李子
我在吃第 2 个李子
我在吃第 4 个李子
我在吃第 5 个李子
代码示例:找到 100-200 中所有 3 的倍数
var num = 100;
while (num <= 200) {
if (num % 3 == 0) {
num++;
continue;
}
console.log("找到了 3 的倍数,为:" + num);
num++;
}
break
结束整个循环(比如:吃五个李子,发现第三个有虫子,剩下的也不吃了)。
var i = 1;
while (i <= 5) {
if (i == 3) {
break;
}
console.log("我在吃第" + i + "个李子");
i++;
}
代码示例:找到 100-200 中第一个 3 的倍数
for 循环
for (表达式 1; 表达式 2; 表达式 3) {
循环体
}
- 表达式 1: 用于初始化循环变量
- 表达式 2: 循环条件
- 表达式 3: 更新循环变量
- 先执行表达式 1,初始化循环变量
- 再执行表达式 2,判定循环条件
- 如果条件为 false,结束循环
- 如果条件为 true,则执行循环体代码
- 执行表达式 3,更新循环变量
var result = 0;
for (var i = 1; i <= 5; i++) {
result *= i;
}
console.log("result = " + result);
数组
创建数组
var arr = [];
var arr2 = [1, 2, 'haha', false];
注意:JS 的数组不要求元素是相同类型。这一点和 C、C++、Java 等静态类型语言差别很大,但是 Python、PHP 等动态类型语言也是如此。
获取数组元素
var arr = ["小狐佩奇", "小猪乔治", "小羊苏西"];
console.log(arr);
console.log(arr[0]);
console.log(arr[1]);
console.log(arr[2]);
arr[2] = "小狐凯迪";
console.log(arr);
如果下标超出范围读取元素,则结果为 undefined:
console.log(arr[3]);
console.log(arr[-1]);
注意:不要给数组名直接赋值,此时数组中的所有元素都没了。(相当于本来 arr 是一个数组,重新赋值后变成字符串了)。
var arr = ["小狐佩奇", "小猪乔治", "小羊苏西"];
arr = "小狐凯迪";
新增数组元素
- 通过修改 length 新增:相当于在末尾新增元素,新增的元素默认值为 undefined。
var arr = [9, 5, 2, 7];
arr.length = 6;
console.log(arr);
console.log(arr[4], arr[5]);
(6) [9, 5, 2, 7, empty × 2]
undefined
undefined
- 通过下标新增:如果下标超出范围赋值元素,则会给指定位置插入新元素。
var arr = [];
arr[2] = 10;
console.log(arr);
此时这个数组的 [0] 和 [1] 都是 undefined,输出结果:
Array(3) 2: 10 length: 3 __proto__: Array(0)
代码示例:给定一个数组,把数组中的奇数放到一个 newArr 中。
var arr = [9, 5, 2, 7, 3, 6, 8];
var newArr = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i] % 2 != 0) {
newArr.push(arr[i]);
}
}
console.log(newArr);
删除数组中的元素
var arr = [9, 5, 2, 7];
arr.splice(2, 1);
console.log(arr);
arr.length: length 使用的时候不带括号,此时 length 就是一个普通的变量(称为成员变量,也叫属性)
arr.push()、arr.splice(): 使用的时候带括号,并且可以传参数,此时是一个函数(也叫做方法)
本文涵盖了 JavaScript 的核心语法结构,包括运算符、流程控制语句以及数组的基本操作。掌握这些内容是编写复杂 JavaScript 程序的基础,建议读者通过实际编码练习加深理解。