1 if语句
语法:
if (condition) statement1 else statement2
这里的条件condition可以是任何的表达式,并且求值的结果并不一定是布尔值。ECMAScript会自动调用Boolean()函数将这个表达式的值转换为布尔值。
if(i>25){
console.log("Greater than 25.");
}else if(i<0){
console.log("Less than 0.");
}else{
console.log("Between 0 and 25,inclusive.");
}
2 do-while语句
do-while语句是一种后测试循环语句,即循环体中的代码执行后才会对退出条件进行求值。换句话说,循环体内的代码至少执行一次:
do {
statement
} while (expression);
例:
let i = 0;
do {
i += 2;
} while (i < 10);
3 while语句
while语句是一种先测试循环语句,即先检测退出条件,再执行循环体内的代码。语法如下:
while(expression) statement
例:
let i = 0;
while (i < 10) {
i += 2;
}
4 for语句
语法如下:
for (initialization;expression;post-loop-expression) statement
例:
let count = 10;
for (let i = 0; i < count; i++) {
console.log(i);
}
以上代码在循环开始前定义了变量i的初始值为0。然后求值条件表达式,如果求值结果为true(i<count),则执行循环体。因此循环体也可能不会被执行。如果循环体被执行,则循环后表达式也会被执行,以便递增变量i。
初始化,条件表达式和循环后表达式都不是必须的,因此下面这种写法可以创建一个无穷循环:
for (;;;){
doSomething();
}
//如果只包含条件表达式,那么for循环实际上就变成了while循环
let count = 10;
let i = 0;
for (;i<count;){
console.log(i);
i++;
}
5 for-in语句
for-in语句是一种严格的迭代语句,用于枚举对象中的非符号键属性,语法:
for (property in expression ) statement
6 for-of语句
for-of语句是一种严格的迭代语句,用于遍历可迭代对象的元素,语法:
for ( property of expression ) statement
7 break和continue语句
break和continue语句为执行循环代码提供了更严格的控制手段。其中break语句用于立即退出循环,强制执行循环后的下一条语句。而continue语句也用于立即退出循环,但会再次从循环顶部开始执行。
let num = 0;
for (let i = 1; i < 10; i++) {
if (i % 5 == 0) {
break;
}
num++;
}
console.log(num); //4
break换成continue
let num = 0;
for (let i = 1; i < 10; i++) {
if (i % 5 == 0) {
continue;
}
num++;
}
console.log(num); //8
8 switch语句
语法:
switch (expression){
case value1:
statement
break;
case value2:
statement
break;
case value3:
statement
break;
default:
statement
}
这里的每一个case相当于:如果表达式等于后面的值,则执行下面的语句。break关键字会导致代码执行跳出switch语句。如果没有break,则代码会继续匹配下一个条件。default关键字用于在任何条件都没有满足时指定默认执行的语句。有了switch语句,就不用写类似于如下的代码:
if (i == 25){
console.log("25");
}else if(i == 35){
console.log("35);
}else if(i == 45){
console.log("45");
}else{
console.log("Other");
}
而是可以这样写:
switch(i){
case 25:
console.log("25");
break;
case 35:
console.log("35");
break;
case 45:
console.log("45");
break;
default:
console.log("Other");
}
switch语句可以用于所有数据类型,因此可以使用字符串甚至对象,其次条件的值不需要是常量,也可以是变量或表达式。
switch("hello world"){
case "hello"+"world":
console.log("Greeting was found");
break;
case "goodbye":
console.log("Closing was found");
break;
default:
console.log("Unexpected message was found");
}
9 函数
基本语法:
function functionName(arg0,arg1,...,argN){
statements
}
例:
function sayHi(name,message){
console.log("Hello"+name+","+message);
}
可以通过函数名来调用函数,如:
sayHi(“Nicholas”,“how are you today”);
输出结果是"Hello Nicholas,how are you today?"
ECMAScript中的函数不需要指定是否返回值,只有碰到return语句,函数就会立即停止执行并退出。return语句也可以不带返回值,这时候,函数会立即停止执行并返回undefined。