1. 语句
- 语句,也被称为流控制语句,而ECMAScript 中的大部分语法都体现在语句中。通过使用一个或多个关键字完成即定任务,语句可以简单,也可以复制
2. if 语句
- 在一些特殊情况中我们需要根据不同条件执行不同的操作,也称为流程控制语句。
- 这样就可以使用
if
语句和条件运算符?:
来实现
if(condtion) statement1 else statement2;
- 这里的
condtion
可以是任何表达式 ,并且求值结果不一定是布尔值,ECMAScript
回自动调用 boolean() 函数将这个表达式的值进行布尔转换,如果为真,就执行 statement1,如果为假,就执行 statement2 。
if(i < 10){
console.log("than 10")
}else{
console.log("else to 10")
}
- 当然也可以这样
if(condtion1) statement1 else if(condtion2) statement2 else statement3
let num = +prompt("请输入一个数字")
// 列子
if(num > 20){
console.log("你输入的内容大于 20")
}else if(num < 20){
console.log('你输入的内容小于 20')
}else{
console.log("你输入的不规范")
}
条件运算符 ?:
- 有时我们需要根据一个条件去赋值一个变量。
let age = prompt("How old are you?",'');
let accessAll;
if(age > 18){
accessAll = true
}else {
accessAll = false
}
console.log(accessAll)
- 上述我们通过 条件 的方式去获取一个变量的
true
或false
- 同时我们也可以通过
?
号的方式,这种方式同时也被称为三元运算符
- 语法:
let result = condition ? value1 : value2
- 计算条件执行 如果
condition
结果为真,就返回value1
, 否则返回value2
let age = prompt("请输入年龄?");
let accessAll = (age > 18) ? true : false;
console.log(accessAll)
添加括号使代码更具有可读性,推荐使用
- 也可以多运算条件
let age = prompt('age?',18);
let message = (age < 3) ? 'hi,baby!' :
(age < 18) ? 'hello' :
(age < 100) ? 'greetings':
"what an unusual age!";
console.log(message)
-
可以看到 第一个问号的时候检查
age < 3
如果为真 则返回hi,baby
,否则继续往下走执行age < 18
-
为真返回
hello ,为假则继续往下执行
age < 100为真则返回
greetiongs,为假则执行最后一个
:号后面的表达式,返回
wath an unusual age!` -
下面在通过if的形式实现一下
let age = prompt('age?',18);
let message;
if(age < 3){
message = 'hi,baby!'
}else if(age < 18){
message = 'hello'
}else if(age < 100){
message = 'greetings'
}else {
message = 'what an unusual age!'
}
console.log('message:',message)
4. switch 语句
- switch 语句是与 if 语句紧密相关的一种
流控制语句
switch(expresion){
case value1:
statement;
break;
case value2:
statement;
break;
case value3:
statement
break;
default:
statement;
}
- 这里的每个
case(条件、分支)
相当于:如果表达式等于后面的值,则执行下面对应的语句。 - break 关键字会导致代码执行完之后跳出 switch 语句,如果没有break,则代码会继续匹配下一个条件,
default
关键字用于在任何条件都没有满足的时指定的默认执行语句 (相当于else
语句)
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 在比较每个条件的值时会使用全等操作符,因此不会强制转换数据类型 (比如 ‘10’ 不等于 10 )