@TOC
一、语句
1.分支语句
在 JavaScript 中,我们可使用如下条件语句:
- 使用 if 来规定要执行的代码块,如果指定条件为 true
使用 else 来规定要执行的代码块,如果相同的条件为 false
- 使用 else if 来规定要测试的新条件,如果第一个条件为 false
- 使用 switch 来规定多个被执行的备选代码块
(1)if语句
if (条件) {
条件为 true 时执行的代码块
} else {
条件为 false 时执行的代码块
}
AI 代码解读
如果if里面的条件表达式结果为真true,则执行大括号里面的执行语句。如果if条件表达式结果为假,则不执行大括号里面的语句,则执行if语句后面的代码
(2)else if 语句
if (条件 1) {
条件 1 为 true 时执行的代码块
} else if (条件 2) {
条件 1 为 false 而条件 2 为 true 时执行的代码块
} else {
条件 1 和条件 2 同时为 false 时执行的代码块
}
AI 代码解读
(3)switch 语句
- 在开发里面,表达式我们经常写成变量。
- 我们的num的值和Case里面的值相匹配的时候是全等。必须是值和数据类型一致才可以num===1
- break如果当前的case里面没有break,则不会退出switch,是继续执行下一个case。
switch(表达式) {
case n:
代码块
break;
case n:
代码块
break;
default:
默认代码块
}
AI 代码解读
(4)break.... case. 与if ...else if的区别
- Break ……case语句通常处理case为比较确定值的情况,
而if else语句。更加灵活,常用于范围判断。
- Switch语句去进行条件判断后直接执行的程序的条件语句效率更高
if else语句有几种条件,就得判断多少次。
- 分支比较少时,if else语句的执行效率比switch语句高
- 当分支比较多时,switch语句的执行效率比较高,而且结构更清晰。
2.循环语句
(1)for循环
语法如下:
for (语句 1; 语句 2; 语句 3) {
要执行的代码块
}
AI 代码解读
- 语句 1 在循环(代码块)开始之前执行。
- 语句 2 定义运行循环(代码块)的条件。
- 语句 3 会在循环(代码块)每次被执行后执行。
实例
for (i = 0; i < 5; i++) {
text += "数字是 " + i + "<br>";
AI 代码解读
(2)For/In 循环
JavaScript for/in 语句遍历对象的属性:
- for in 循环遍历 person 对象
- 每次迭代返回一个键 (x)
- 键用于访问键的值
- 键的值为 person[x]
实例
var person = {fname:"Bill", lname:"Gates", age:62};
var text = "";
var x;
for (x in person) {
text += person[x];
}
AI 代码解读
(3)Array.forEach()
forEach() 方法为每个数组元素调用一次函数(回调函数)。
const numbers = [45, 4, 9, 16, 25];
let txt = "";
numbers.forEach(myFunction);
function myFunction(value, index, array) {
txt += value;
}
AI 代码解读
(4)For Of 循环
它允许您循环遍历可迭代的数据结构,例如数组、字符串、映射、节点列表
语法
for (variable of iterable) {
// code block to be executed
}
AI 代码解读
variable -——对于每次迭代,下一个属性的值都会分配给变量。变量可以用 const、let 或 var 声明。
iterable —— 具有可迭代属性的对象。
(5)While 循环
while 循环会一直循环代码块,只要指定的条件为 true。
语法
while (条件) {
要执行的代码块
}
AI 代码解读
while (i < 10) {
text += "数字是 " + i;
i++;
}
AI 代码解读
(6)do while 循环
do/while 循环是 while 循环的变体。在检查条件是否为真之前,这种循环会执行一次代码块,然后只要条件为真就会重复循环。
下面的例子该循环会执行至少一次,即使条件为 false,因为代码块会在条件测试之前执行:
do {
text += "The number is " + i;
i++;
}
while (i < 10);
AI 代码解读
3.break语句
break 语句也可用于跳出循环
break 语句会中断循环,并继续执行循环之后的代码(如果有):
for (i = 0; i < 10; i++) {
if (i === 3) { break; }
text += "数字是 " + i + "<br>";
}
AI 代码解读
4.Continue 语句
continue 语句中断(循环中)的一个迭代,如果发生指定的条件。然后继续循环中的下一个迭代。
本例跳过值 3 :
for (i = 0; i < 10; i++) {
if (i === 3) { continue; }
text += "数字是 " + i + "<br>";
}
AI 代码解读
二、正则表达式
正则表达式是构成搜索模式
的字符序列。
该搜索模式可用于文本搜索和文本替换操作
1. 使用字符串方法
在 JavaScript 中,正则表达式常用于两个字符串方法:search() 和 replace()。
- search() 方法使用表达式来搜索匹配,然后返回匹配的位置。
- replace() 方法返回模式被替换处修改后的字符串。
2.使用字符串方法 search() 来处理字符串
使用字符串方法 search() 来处理字符串 search() 方法也接受字符串作为搜索参数。字符串参数将被转换为正则表达式:
var str = "Visit W3School!";
var n = str.search("W3School");
AI 代码解读
3. 在字符串方法 search() 中使用正则表达式
var str = "Visit W3School";
var n = str.search(/w3school/i);
AI 代码解读
4. 使用字符串方法 replace() 处理字符串
replace() 也接受字符串作为搜索参数:
5. 在字符串方法 replace() 中使用正则表达式
使用大小写不明的正则表达式以 W3school 来替换字符串中的 Microsoft:
var str = "Visit Microsoft!";
var res = str.replace(/microsoft/i, "W3School");
AI 代码解读
res 的结果将是:
Visit W3School!
AI 代码解读
三、this关键词
- this定义
this 关键词指的是它所属的对象。
它拥有不同的值,具体取决于它的使用位置:
在方法中,this 指的是所有者对象。
在对象方法中,this 指的是此方法的“拥有者”。
fullName : function() {
return this.firstName + " " + this.lastName;
}
AI 代码解读
- 单独的情况下,this 指的是全局对象。
在浏览器窗口中,全局对象是 [object Window]:
- 在函数中,this 指的是全局对象。
在 JavaScript 函数中,函数的拥有者默认绑定 this。
在函数中,this 指的是全局对象 [object Window]。
function myFunction() {
return this;
}
AI 代码解读
- 在函数中,严格模式下,this 是
undefined
。 - 在事件中,this 指的是接收事件的元素。
事件处理程序中的 this:
实例
<button onclick="this.style.display='none'">
点击来删除我!
</button>
AI 代码解读
- call() 和 apply() 这样的方法可以将 this 引用到任何对象。