一、JS相关基础语句
1、条件结构
if(条件表达式){如果条件为真执行的代码块}
if(条件表达式){如果条件为真执行的代码块}else{条件为假执行的代码块}
if(条件表达式1){如果条件1为真执行的代码块}else if(条件表达式2){条件2为真执行的代码块}...else{所有条件为假时执行的代码块}
示例如下:
let condition = false
//单独IF语句
if(condition){
// 当条件为真时执行的代码
console.log(condition); //不执行
}
//if...else...语句
if(condition){
// 当条件为真时执行的代码
console.log(condition); //不执行
}else{
console.log(!condition); //执行; 输出true
}
//if...else if...else语句
if(condition){
// 当条件为真时执行的代码
console.log(condition); //不执行
}else if(!condition){
console.log(!condition); //执行; 输出true
}else{
console.log("都是假的"); //不执行
}
条件结构除开上述的if结构外还存在switch结构,其语法如下所示:
/*
expression:一个表达式,其结果将与每个 case 的值进行比较。
value1, value2:与 expression 进行比较的值。
break:用于终止 switch 语句,防止继续执行后续的 case
*/
let expression = 2;
let value1 = 3;
let value2 = 2;
switch (expression) {
case value1:
// 当 expression 等于 value1 时执行的代码
console.log(value1);
break;
case value2:
// 当 expression 等于 value2 时执行的代码
console.log(value2);
break;
// 可以有任意数量的 case 语句
default:
// 当 expression 不匹配任何 case 时执行的代码
console.log("没有匹配项");
}
此外前面提到的三元运算符,也是一种条件结构
条件表达式 ? 条件为真的结果 : 条件为假的结果;
小结:条件语句是JavaScript中控制程序执行流程的重要工具。通过合理使用 if
、else if
、else
、switch
以及三元运算符,你可以编写出能够应对各种情况的灵活代码。选择哪种条件语句取决于你的具体需求和代码的可读性。
2、循环结构:
2.1、for循环
//基本for循环
/*
初始化表达式:let i = 0;,在循环开始时执行一次,用于初始化计数器。
条件表达式:i < n;,在每次循环迭代前检查,如果为 true,则继续循环;否则,退出循环。
递增表达式:i++,在每次循环迭代后执行,用于更新计数器。
*/
let n = 10;
for(let i = 0; i<=10; i++){
//循环体
console.log(i); //依次输出 0,1,2,3......10
}
//for ... in 循环, 一般用于遍历对象的可枚举属性(包括继承的可枚举属性)。语法如下:
let obj = {name: "张三", age: 27, grade: 655};
for(let key in obj){
console.log("键:" + key + "\t值: " + obj[key]); //输出属性和属性值
}
// for...of 循环用于遍历可迭代对象(如数组、字符串、Map、Set等)的值。语法如下:
let arr = [1, 2, 3, 4, 5];
for (let value of arr) {
console.log(value); // 依次输出数组中的每个元素(1,2,3,4,5)
}
2.2、while循环与do...while循环
//while循环, 一般用于在条件为真时重复执行代码块。适用于循环次数未知,但条件明确的情况。语法如下
let n = 10;
let i = 0;
while (i < n) {
// 循环体:每次循环执行的代码,条件为真才会执行
i++; // 更新计数器
console.log(i); //输出1,2,3......10
}
//do...while循环,循环与 while 循环类似,但不同的是,它会先执行一次循环体,然后再检查条件是否为真
//注意执行循环体前i=10
do {
// 循环体:每次循环执行的代码
i++; // 此时i=11
console.log(i); //输出一次,结果为11
} while (i < n); //11<10条件为假,终止循环
2.3、死循环
while(true){
console.log(1); //不停的在控制台输出1,严重会导致电脑运行内存爆满导致卡死
}
//条件永远会成立
let i = 0;
while(i<10){
i--; //新手容易出现的错误编程
}
for(let j = 0; j<10; j--){
//死循环
}
小结:在编程过程中,应避免出现死循环的情况,一旦出现死循环可能会大量占用电脑运行内存,严重的话会导致电脑死机
2.4、循环结构中的break与continue
break
用于立即终止当前所在的循环(for
、while
、do...while
),并跳出循环体,继续执行循环后面的代码。
continue
用于跳过当前循环的剩余部分,并立即开始下一次循环迭代。
//break的作用
for (let i = 0; i < 10; i++) {
if (i === 5) {
break; // 当 i 等于 5 时,跳出循环
}
console.log(i); // 输出 0, 1, 2, 3, 4
}
console.log('循环结束'); // 跳出循环后执行
//continue的作用
for (let i = 0; i < 10; i++) {
if (i === 5) {
continue; // 当 i 等于 5 时,跳过本次循环的剩余部分
}
console.log(i); // 输出 0, 1, 2, 3, 4, 6, 7, 8, 9
}
console.log('循环结束'); // 循环正常结束后执行
小结:JavaScript提供了多种循环结构,每种结构都有其特定的用途和优势。选择哪种循环结构取决于你的具体需求和代码的可读性。for
循环适用于已知循环次数的情况,while
和 do...while
循环适用于循环次数未知但条件明确的情况,for...in
循环用于遍历对象的属性,for...of
循环用于遍历可迭代对象的值。
3、捕获异常
try {
// 可能会抛出错误的代码
/*
在这个块中,你放置可能会抛出异常的代码。
如果在 try 块中的代码抛出了一个异常,JavaScript 会立即停止执行 try 块中的剩余代码,并跳转到 catch 块。
*/
} catch (error) {
// 处理错误的代码
/*
catch 块用于捕获 try 块中抛出的异常。
catch 块接收一个参数(通常命名为 error 或 e),这个参数是一个包含异常信息的对象。
你可以在 catch 块中编写处理异常的代码,比如记录错误信息、提示用户、或者执行一些清理操作。
*/
} finally {
// 无论是否发生错误,都会执行的代码(可选)
/*
finally 块中的代码无论是否发生异常都会执行。
通常用于释放资源或执行必须的清理操作。
*/
}
小结:通过合理使用 try...catch
,你可以使你的JavaScript代码更加健壮和易于维护,尤其是在处理可能会失败的操作(如网络请求、文件操作等)时
二、JS宏中简单的批量操作
1、批量创建工作簿
function main(){
let n = 0;
while(n<=5){
Workbooks.Add();
n++;
}
}
//执行后会出现6个工作簿窗口
2、批量创建工作表
function main(){
let n = 0;
while(n<=5){
Sheets.Add();
n++;
}
}
3、依次在一列中填充1~20个序号
function main(){
let n = 1;
while(n<=20){
Range("A" + n).Value2 = n;
n++;
}
}
小结:通过循环语句,可以轻松实现一些批量操作。
下一节:js宏中的文件操作