[toc]
# 每日英語
1. `statement` 語句
1. `Syntax` 語法
1. `score` 成績 分數
1. `Illegal` 非法
# 什么是語句?
> 一行代碼就是一個語句, 分號結束
## 什么是流程控制語句?
> 可以改變代碼運行順序的語句
> 包括`順序語句`,`分支語句`,`循環語句`
> 三種語句結合, 可以解決所有問題, 不需要新的類型的語句
### 順序語句
> 可以從上到下, 從左往右順序執行的語句
### 分支語句
> 根據條件不同, 選擇一部分語句執行
> 第一步, 先判斷是否符合條件, 第二步, 做選擇
#### if 語句
`if (condition) statement1 else statement2`
自動類型轉換
```javascript
if ("hello") {
console.log(1);
} else {
console.log(2);
}
console.log(Boolean("hello")); // true
```
```javascript
if ("") {
console.log(1);
} else {
console.log(2); // 走這個
}
```
如果分支語句中, 只有一行, 可以省略大括號(花括號), 但是不推薦
```javascript
if ("") console.log(1);
else console.log(2); // 走這個
```
多行一定要加花括號
```javascript
if ("") {
console.log(1);
console.log(12);
} else {
console.log(2); // 走這個
console.log(23); // 走這個
}
```
更加復雜的
`if (condition) statement1 else if (condition2) statement2 else statement3`
```javascript
var bus46 = true;
var bus47 = true;
if (bus46) {
console.log("搭乘46路公交車上課"); // 走這個
} else if (bus47) {
console.log("搭乘47路公交車上課");
} else {
console.log("沒招兒了, 繼續等吧, 或者11路");
}
```
```javascript
var bus46 = false;
var bus47 = true;
if (bus46) {
console.log("搭乘46路公交車上課");
} else if (bus47) {
console.log("搭乘47路公交車上課"); // 走這個
} else {
console.log("沒招兒了, 繼續等吧, 或者11路");
}
```
```javascript
var bus46 = false;
var bus47 = false;
if (bus46) {
console.log("搭乘46路公交車上課");
} else if (bus47) {
console.log("搭乘47路公交車上課");
} else {
console.log("沒招兒了, 繼續等吧, 或者11路"); // 走這個
}
```
**`else if` 和 `elseif`不同, `elseif`會報錯**
```javascript
var score = 90;
if (score >= 90) {
console.log("都是九年制義務教育, 你為何如此優秀?"); // 跑這個
} else if (score >= 80) {
console.log("哎呦, 還不錯哦");
} else if (score >= 70) {
console.log("繼續加油, 我看好你呦!");
} else if (score >= 60) {
console.log("騷年, 需要加把勁了!");
} else {
console.log("我已經無言以對了...");
}
```
```javascript
var score = 81;
if (score >= 90) {
console.log("都是九年制義務教育, 你為何如此優秀?");
} else if (score >= 80) {
console.log("哎呦, 還不錯哦"); // run this statement
} else if (score >= 70) {
console.log("繼續加油, 我看好你呦!");
} else if (score >= 60) {
console.log("騷年, 需要加把勁了!");
} else {
console.log("我已經無言以對了...");
}
```
```javascript
var score = 55;
if (score >= 90) {
console.log("都是九年制義務教育, 你為何如此優秀?");
} else if (score >= 80) {
console.log("哎呦, 還不錯哦");
} else if (score >= 70) {
console.log("繼續加油, 我看好你呦!");
} else if (score >= 60) {
console.log("騷年, 需要加把勁了!");
} else {
console.log("我已經無言以對了..."); // run this statement
}
```
if 語句, 越嚴格的條件, 越放在前面
```javascript
var score = 100;
if (score >= 60) {
console.log("無言以對");
} else if (score >= 70) {
console.log("加把勁");
} else if (score >= 80) {
console.log("看好你");
} else if (score >= 90) {
console.log("太棒了");
}
// 都是無言以對
```
## switch
> 條件語句的一種
```
switch(expression){
case value:
statement
break;
case value:
statement
break;
...
default:
statement
}
```
改寫原來的 if else 例子
```javascript
var score = 51;
switch (parseInt(score / 10)) {
case 8:
console.log("哎呦, 還不錯哦");
break;
case 7:
console.log("繼續加油, 我看好你呦!");
break;
case 9:
console.log("都是九年制義務教育, 你為何如此優秀?");
break;
case 6:
console.log("騷年, 需要加把勁了!");
break;
default:
console.log("我已經無言以對了...");
}
```
```javascript
var score = 91;
switch (parseInt(score / 10)) {
case 8:
console.log("哎呦, 還不錯哦");
case 7:
console.log("繼續加油, 我看好你呦!");
case 9:
console.log("都是九年制義務教育, 你為何如此優秀?");
case 6:
console.log("騷年, 需要加把勁了!");
default:
console.log("我已經無言以對了...");
}
```
也可以使用范圍
```javascript
var score = 71;
switch (true) {
case score >= 80 && score < 90:
console.log("哎呦, 還不錯哦");
break;
case score >= 70 && score < 80:
console.log("繼續加油, 我看好你呦!");
break;
case score >= 90 && score < 100:
console.log("都是九年制義務教育, 你為何如此優秀?");
break;
case score >= 60 && score < 70:
console.log("騷年, 需要加把勁了!");
break;
default:
console.log("我已經無言以對了...");
}
```
## switch 和 if else 的區別何在?
1. switch 不用考慮順序順序
1. 性能問題比 if else 好一點
整合結果
```javascript
var score = 88;
switch (parseInt(score / 10)) {
case 8:
case 7:
case 9:
case 6:
console.log("很好!");
break;
default:
console.log("我已經無言以對了...");
}
```
```javascript
var a = "helloworld";
switch (a) {
case "hello" + "world":
console.log("hello world");
break;
case "good" + "bye":
console.log("good bye");
break;
default:
console.log("nothing...");
}
```
```javascript
var a = 123;
// 使用 === 來比較
switch (a) {
case "12" + "3":
console.log("hello world");
break;
case "good" + "bye":
console.log("good bye");
break;
default:
console.log("nothing...");
}
```
break, 一般用在 switch 和循環中, 表示終斷
在順序語句和函數中, 一般使用 return
### 循環語句
> 根據條件, 重復執行某一段代碼
#### do-while
> 后測試循環語句
```
do{
statement
}while(expression)
```
```javascript
var i = 0;
do {
i += 2;
console.log(i); // 2,4,6,8,10
} while (i < 10);
```
#### while
> 前測試循環語句
```
while(expression) statement
```
```javascript
var i = 0;
while (i < 10) {
console.log(i); // 0,2,4,6,8
i += 2;
}
```
#### for
> 前測試循環語句
```
for(initialization; expression; post-loop-expression) statement
```
```javascript
var count = 10;
for (var i = 0; i < count; i++) {
console.log(i); // 0,1,2,3,4,5,6,7,8,9
}
```
break 終斷
```javascript
var count = 10;
for (var i = 0; i < count; i++) {
if (i == 5) {
break;
}
console.log(i); // 0,1,2,3,4
}
```
continue 繼續,跳過本次循環
```javascript
var count = 10;
for (var i = 0; i < count; i++) {
if (i == 5) {
continue;
}
console.log(i); // 0,1,2,3,4,6,7,8,9
}
```
無限循環
```javascript
var count = 10;
for (;;) {
console.log(count);
}
```
```javascript
var count = 10;
for (var i = 0; ; i++) {
console.log(i);
}
```
```javascript
// var count = 10;
// var i = 0;
// while (i < count) {
// i++;
// console.log(i);
// }
var count = 10;
var i = 0;
for (; i < count; ) {
i++;
console.log(i);
}
```
for和if同時使用
```javascript
var student = "佳佳同學";
var push_up_sum = 40;
for (var push_up_num = 1; push_up_num <= push_up_sum; push_up_num++) {
console.log(student + "已經做了 " + push_up_num + " 個俯臥撐啦");
if (push_up_num == push_up_sum) {
console.log(student + "已經做完了, 目前感覺良好!");
}
}
```
```javascript
var student = "佳佳同學";
var push_up_sum = 1000;
for (var push_up_num = 1; push_up_num <= push_up_sum; push_up_num++) {
console.log(student + "已經做了 " + push_up_num + " 個俯臥撐啦");
if (push_up_num == 50) {
console.log(student + "有點發虛...");
}
if (push_up_num == 100) {
console.log(student + "表示'我還可以...'");
}
if (push_up_num == 200) {
console.log(student + "居然有了快樂的感覺");
}
if (push_up_num == 300) {
console.log(student + "漸入佳境...");
}
if (push_up_num == 500) {
console.log(student + "已經停不下來了了!");
}
if (push_up_num == push_up_sum) {
console.log(
student + "表示:'我不是針對誰, 說道俯臥撐, 在座的各位, 都是垃圾'"
);
}
}
```
- 每日單詞
- JavaScript 入門
- JavaScript 基礎
- JavaScript 基礎回顧
- JavaScript 函數
- 匿名函數,多維數組,數據類型轉換
- JavaScript 類型轉換, 變量作用域
- js 運算符(一)
- js 運算符(二)
- js 流程控制語句
- JavaScript 掃盲日
- JavaScript 牛刀小試(一)
- JavaScript 牛刀小試(二)
- JavaScript 再談函數
- JavaScript-BOM
- JavaScript-定時器(一)
- JavaScript-定時器(二)
- 番外-輪播圖源碼
- JavaScript 輪播圖和 DOM 簡介
- JavaScript-DOM 基礎-NODE 接口-屬性
- JavaScript-DOM 基礎-NODE 接口-方法
- NodeList-接口-HTMLCollection-接口
- Document 節點
- CSS 復習與擴展(一)
- CSS 復習與擴展(二)
- 走進 jQuery 的世界
- 使用 jquery
- 使用 jquery-2
- jquery 中高級
- jquery 備忘清單-1
- jquery 備忘清單-2
- 聊聊 json
- jquery 備忘清單-3