# 零、JavaScript 基礎簡介
###### tags: `JavaScript` `2020六月第五週` `進度筆記` `Lidemy心得`
詳細內容在 JS101 。
---
1. `console.log()` : 可以把 "( )" 寫在 js 檔案的訊息印出來,表示輸出的意思,括號內也可以放條件 。
if (70 > 60) {
console.log('及格了')
}
如果設定條件 , 就可以使 70 分 > 60 分的條件成立 , 並印出及格了 。
---
2. 設定宣告 (var) 和變數 (score):
//賦值
var score = 70
if (score >= 60) {
console.log('及格了')
}
if (score < 60){
console.log('不及格')
}
宣告 70 賦予給 score , "=": 表示賦值, "{}": 表示區塊 , 先判斷宣告再判斷 第一個和第二個 if 。
---
3. `if` & `else`: 寫了很多個 if 可能會很冗長,因此可以縮短,如 ↓
//賦值
var score = 50
if (score >= 60) {
console.log('及格了')
} else {
console.log('不及格')
}
如果符合 >= 則進到 "及格了" , 如果不符合就到 "不及格" 。
---
4. 給一點變形式:
//賦值
var score = 50
if (score >= 80) {
console.log('你好棒')
} else if (score >=60) {
console.log('及格')
} else {
console.log('不及格')
}
宣告 50 賦予 score ,"如果" >= 80 印出你好棒,但 "否則" "如果" >= 60 印出及格,"否則" 印出不及格。
----
5. 陣列:
//賦值
// Array 陣列
var scores = [80, 90, 100, 60, 50]
console.log(scores)
if (scores >= 80) {
console.log('你好棒')
} else if (scores >=60) {
console.log('及格')
} else {
console.log('不及格')
}
"[]": 陣列中可以包含很多個數字;如要取陣列內的某個元素,程式語言第一個以 0 作為表示,表示 "索引" 以 0 作表示:
//賦值
// Array 陣列
var scores = [80, 90, 100, 60, 50]
console.log(scores[0])
則會印出索引 "[0]" 為第一位要的第 1 個相關數字即 80;"[1]" 則表示第二位 90; "[2]" 第三位為100。
---------------
6. 列出所有元素 `.length`:
//賦值
// Array 陣列
var scores = [80, 90, 100, 60, 50]
console.log(scores.length) // scores[0] ~ scores[scores.lenght -1]
表示可以列出所有元素,存取範圍為 0 到 scores.lenght -1;如果重複要判斷很多個數字就會變成:
var scores = [60, 80, 30, 70, 50]
console.log(scores)
if (scores[0] >= 80) {
console.log('你好棒')
} else if (scores >=60) {
console.log('及格')
} else {
console.log('不及格')
}
if (scores[1] >= 80) {
console.log('你好棒')
} else if (scores >=60) {
console.log('及格')
} else {
console.log('不及格')
}
if (scores[2] >= 80) {
console.log('你好棒')
} else if (scores >=60) {
console.log('及格')
} else {
console.log('不及格')
}
但這樣就會太冗長,因為 scores[] 中都是重複的,所以就有了迴圈。
---
7. 迴圈 `for` :
for (var i=0; i<=4; i++) {
}
需要設定: 會先執行起始條件 "i=...",然後檢查是否符合終止條件 "i<=...",再執行每圈要做的事情 "i++",然後再判斷終止條件一直持續到不符合就跳出去:
var scores = [60, 80, 30, 70, 50]
console.log(scores)
for (var i=0; i<=scores.length - 1; i++)
if (scores[i] >= 80) {
console.log('你好棒')
} else if (scores[i] >= 60) {
console.log('及格')
} else {
console.log('不及格')
}
如此就可以判斷陣列中所有的分數是否及格。
---
8. `function` 功能,後面接"( )"可以用來傳參數
function getRating(scores) {
console.log('scores!', scores)
}
getRating(60)
我呼叫 grtRating 並且把 60 這個參數代進去 scores,使 60 變成變數。
如果給點變形:
function getRating(scores) {
if (scores >= 80) {
console.log('你好棒')
} else if (scores >= 60) {
console.log('及格')
} else {
console.log('不及格')
}
}
getRating(60)
這樣就會顯示 60 分為及格。
如果拿來判斷所有分數:
var scores = [60, 80, 30, 70, 50]
console.log(scores)
for (var i=0; i<=scores.length - 1; i++) {
getRating(scores[i])
}
function getRating(scores) {
if (scores >= 80) {
console.log('你好棒')
} else if (scores >= 60) {
console.log('及格')
} else {
console.log('不及格')
}
}
getRating(60)
跑第一圈就會把 60 丟進去 scores 判斷是否符合。
----
9. `return` 也可以等於,表示回傳值:
y = f(x)
function x () {
return 123
}
表示執行完 function 的結果是 123 ,回傳完後 funct 就會停止運作,一個 function 只會回傳第一次執行 return 的結果:
var scores = [60, 80, 30, 70, 50]
return(scores)
for (var i=0; i<=scores.length - 1; i++) {
getRating(scores[i])
}
function getRating(scores) {
if (scores >= 80) {
return('你好棒')
} else if (scores >= 60) {
return('及格')
} else {
return('不及格')
}
}
getRating(60)
但如果直接跑是不會有結果,因為一定要有 `console.log` 才會有輸出:

因此要 "宣告" t 這個變數, 並把 (scores[i]) 給 getRating 再 "賦予" 給 t ,
再用 console.log 印出 t 這個值:
var scores = [60, 80, 30, 70, 50]
for (var i=0; i<=scores.length - 1; i++) {
var t = getRating(scores[i])
console.log(t)
}
function getRating(scores) {
if (scores >= 80) {
return('你好棒')
} else if (scores >= 60) {
return('及格')
} else {
return('不及格')
}
}
getRating(60)
---
code war 不看 console.log 輸出(因為不是在 CLI) , 而是看 return 回傳值。
而 Lidemy.OJ 是根據最後的輸出來看答案對不對。