JavaScript if 語句
在程序中 if 語句屬于條件語句的一種。
如同 if
的本意,就是根據(jù)條件做不同的事情。
1. 基本語法
if
語句的最基本語法如下:
// 方式1
if (條件) {
// 條件滿足做的事情;
}
// 方式2
if (條件) 條件滿足時(shí)候做的事情;
通常方式2的使用場景是
在條件滿足時(shí)只會寫一行代碼
的情況,有些代碼壓縮工具可能會將多個(gè)語句配合逗號表達(dá)式
壓縮成方式2。
這是 if 語句兩種最基本語法。
第一種方式用到的相對較多,當(dāng)條件滿足的時(shí)候,就會執(zhí)行大括號內(nèi)的代碼,第二種方式則會在條件滿足的時(shí)候執(zhí)行括號后面到行尾的語句。
條件滿足的情況其實(shí)就是條件的執(zhí)行結(jié)果不為false或者不能被隱式轉(zhuǎn)為false
的情況。
var score = 99;
if (score > 60) {
console.log('及格了'); // 輸出:"及格了"
}
if (score > 90) {
console.log('優(yōu)秀!'); // 輸出:"優(yōu)秀!"
}
>
符號就是判斷左邊的數(shù)是否大于右邊,如果左邊大于右邊則會返回 true
,否則返回 false
。
這里兩個(gè) if
語句的條件都是滿足的,所以會輸出及格了
和優(yōu)秀!
。
方式二在簡單函數(shù)中很常見
// 計(jì)算圓面積
function calcArea(r) {
if (!r) return 0;
return r * r * 3.14;
}
這里判斷了 r 是否有傳入,如果沒有傳入則直接返回了 0。
2. 分支
if 語句可以僅有單個(gè)分支也可以有多個(gè)分支。
// 單個(gè)分支
if (條件1) {
// 條件1滿足的時(shí)候執(zhí)行的代碼
} else {
// 條件1不滿足的時(shí)候執(zhí)行的代碼
}
// 多個(gè)分支
if (條件1) {
// 條件1滿足的時(shí)候執(zhí)行的代碼
} else if (條件2) {
// 條件2滿足的時(shí)候執(zhí)行的代碼
} else if (條件3) {
// 條件3滿足的時(shí)候執(zhí)行的代碼
} else {
// 條件1、條件2、條件3都不滿足的時(shí)候執(zhí)行
}
單個(gè)分支的方式比較常用:
var score = 77;
if (score >= 60) {
console.log('及格了');
} else {
console.log('不及格');
}
// 輸出:"及格了"
>=
則表示左邊的值如果大于等于右邊的值,則返回 true
否則返回 false
。
通過這樣的分支,就可以擴(kuò)展條件的場景。
多個(gè)分支的場景也非常用到,如需要判斷成績的不同區(qū)間給出不同的標(biāo)準(zhǔn):
var score = 88;
if (score < 60) {
console.log('不及格');
} else if (score < 80) {
console.log('良好');
} else if (score < 90) {
console.log('優(yōu)秀!');
} else {
// 剩下的肯定是大于等于九十的情況
console.log('太強(qiáng)了!');
}
// 輸出:"優(yōu)秀!"
在多個(gè)分支的情況下,else
也可以不提供。
var score = 0;
if (score < 60) {
console.log('不及格');
} else if (score < 80) {
console.log('良好');
} else if (score < 90) {
console.log('優(yōu)秀!');
} else if (score <= 100) {
console.log('太強(qiáng)了!');
}
// 輸出:不及格
3. 例子
注意:例子的解法不止一種,可以自己發(fā)散實(shí)現(xiàn)
3.1 判斷一個(gè)數(shù)是不是偶數(shù)
var num = 77;
if (num % 2 === 0) {
console.log(num + '是一個(gè)偶數(shù)');
} else {
console.log(num + '是一個(gè)奇數(shù)');
}
// 輸出:77是一個(gè)奇數(shù)
這里就是通過將數(shù)字對 2 進(jìn)行取余數(shù)操作,如果余數(shù)是 0 則說明一個(gè)數(shù)是偶數(shù),否則就是奇數(shù)。
3.2 計(jì)算成人的標(biāo)準(zhǔn)體重
var sex = '男';
var height = 178;
var offset = 0;
if (sex === '男') {
offset = 105;
} else {
offset = 100;
}
var weight = height - offset;
console.log('身高為' + height + 'cm的' + sex + '性標(biāo)準(zhǔn)體重為' + weight + 'KG');
// 輸出:身高為178cm的男性標(biāo)準(zhǔn)體重為73KG
首先要知道標(biāo)準(zhǔn)體重的計(jì)算公式:
- 男:身高(cm)-105 = 標(biāo)準(zhǔn)體重(kg)
- 女:身高(cm)-100 = 標(biāo)準(zhǔn)體重(kg)
可以看到男生需要身高減去一個(gè) 105
的偏移量,女生需要減去 100
的偏移量,所以要判斷性別決定這個(gè)值。
每個(gè)人的身高是不一樣的,所以作為變量。
所以只需要根據(jù)性別判斷是減去 105 還是減去 100,最后計(jì)算出結(jié)果即可。
4. 小結(jié)
if 語句很簡單,但是非常常用和重要,高級語言如果失去了條件語句,又沒有其他的替代品,基本就失去了活力。
使用if語句的時(shí)候也需要注意,碰到冗長的條件盡量思考一下是不是有更好的解決方案,防止代碼可讀性和可維護(hù)性變差。