Javascript
先到我們的開發環境去
如何使用呢?
直接打
- 輸入數字
- 輸入字串(使用"或')
四則運算
- 加法 +
- 減法 -
- 乘法 *
- 除法 /
- 括號先運算 ()
- 取餘數 %
字串相加
- "Hello, " + "World"
- "我的第" + 1 + "個程式"
教大家其他指令囉~
跳脫純運算的指令
console.log(數值)
把數值印出來
有點類似printf 或者 cout
把他們印出來~
console.log(8)
console.log("大家好")
console.log("我正在學習" + " Javascript")
console.log(18/9*(2+1)%5)
練習時間
程式碼練習1:
我今天出門去早餐店買了一份蛋餅和一杯溫紅茶,蛋餅一份 25 元,紅茶一份 15 元,剛好今天蛋餅打 8 折,於是我開心地買了早餐上學。
請問我買早餐一共花了多少錢。(用程式印出計算式和答案)
要使用多行指令囉
介紹左半邊
變數
在執行的過程中,一個暫存資料的地方
Javascript的變數宣告
var 變數名稱
= 意思是將右邊的值丟到左邊去
與數學的等於不同
var name = "周彤"
var grade = 3
name = "彤彤"
用來改變變數的值
變數命名規則
- 不可以數字開頭
- 不可使用保留字
- 區分大小寫
使用變數!!
var city = "台中市"
var degree = 28
console.log(city)
console.log(degree)
console.log("現在所在城市:" + city)
console.log("現在溫度:" + degree + "度C" )
var decrease = 5
degree = degree - decrease
console.log("預計傍晚溫度:" + degree + "度C")
對變數做運算
degree += 1
console.log( degree )
degree -= 1
console.log( degree )
degree *= 2
console.log( degree )
degree /= 2
console.log( degree )
name += "彤"
console.log( name )
更奇妙的寫法
degree ++
console.log(degree)
degree --
console.log(degree)
如何讓程式可讀性增加?
除了取名字的美學外
註解也是很幫助的哦~
如何使用註解?
- 單行註解 //
- 多行註解 /**/
degree += 1
// degree = degree + 1
degree -= 1
// degree = degree - 1
degree *= 2
// degree = degree * 2
degree /= 2
// degree = degree / 2
name += "彤"
// name = name + "彤"
/* 我不會顯示
你看不見我
你看不見我
你看不見我
你看不見我
你看不見我
你看不見我
你看不見我
*/
練習時間
程式碼練習2:
宣告一個變數,指定其初始值為 Javascript,並使用 console.log 印出以下圖案
練習時間
程式碼練習3:
請依照以下程式碼的指示在 repl.it 網站執行
var a;
console.log('a = ' + a)
// Step 1: 複製這段程式碼到 repl.it
// Step 2: 執行這段程式碼
// Step 3: 直接在右側的視窗輸入 a = 10
// Step 4: 然後再執行一次這個程式碼
// Step 5: 直接在右側黑黑的視窗輸入 a = 'A plain text'
// Step 6: 再執行一次程式碼
練習時間
程式碼練習4:
宣告兩個不同的變數a, b,請寫一個程式讓a, b的值互相交換
- 先印出a和b的資料
- 將a和b的資料進行交換
- 再印出一次a和b的資料
布林值
僅存在 是 或 否
true or false
如何產生布林值?
請問252是否比652大?
252 > 652 → false
>, <, >=, <=, ==, !=
請問馬和鹿是否一樣?
"馬" == "鹿" → false
電腦不會指鹿為馬的ㄎㄎ
布林可以做甚麼?
常常拿來作流程控制
if, else ...
回想上個星期的遊戲
基本流程控制
if(true){
console.log("我會被顯示")
}
if(false){
console.log("我不會被顯示")
}
else{
console.log("我才會被顯示")
}
產生布林值,並運用
若 689 比609大,請說!!,否則說??
var a = 689, b = 609;
if(a > b)
console.log("!!")
else
console.log("??")
若馬和鹿一樣,請說指鹿為馬,否則說你很誠實
var h = '馬', d = "鹿";
if(h == d)
console.log("指鹿為馬...")
else
console.log("你很誠實")
再用布林產生布林
如果( (若馬與鹿一樣) 且 (689比609大) )
var and_op = (h == d) && (b > g);
console.log(and_op) // false
&& → 且
如果 ( (若馬與鹿一樣) 或 (689比609大) )
var or_op = (h == d) || (b > g)
console.log(or_op) // true
|| → 或
練習時間
程式碼練習5:
宣告一個名為q的變數並指定其初始值為5
讓變數每次都加1,連續加到q 等於 16 為止
在q的值介於12到15之間時,印出 "q = ?"
練習時間
程式碼練習6:
有一台計程車計費方式為:里程數在1500公尺下皆為70元,超過的里程數以每500公尺加價5元計算
請寫一程式計算車費
console.log("請輸入里程數:");
var mater = prompt();
Hint
↑這樣取得里程數哦↑
練習時間
程式碼練習7:
宣告一個變數 score,當 score 為0~59時顯示 Bad
當 score 為60~100 時顯示 Good,其餘輸出 Oops!
console.log("請輸入分數:");
var score = prompt();
Hint
↑這樣取得分數哦↑
我們來點情境吧,情境一
走在路上時,遇到一個人
如果是學妹,則...
如果是學弟,則...
如果是這學期教你的教授,則...
如果是之前當過你的教授,則...
把下面這個輸入,他會隨機幫你遇到一個人
function meet_a_people(){
return ['學妹','學弟','這學期教你的教授','之前當過你的教授'][Math.floor(Math.random()*4)];
}
the_people_you_meet = meet_a_people();
if(the_people_you_meet == '學妹')
console.log("學妹你好啊~最近怎麼樣啊~?");
else if(the_people_you_meet == '學弟')
console.log("...");
else if(the_people_you_meet == '這學期教你的教授')
console.log("教授好!");
else if(the_people_you_meet == '之前當過你的教授')
console.log("ヽ(#`Д´)ノ");
在這種情況下
有另外一種流程控制
switch ... case ...
Title Text
the_people_you_meet = meet_a_people();
switch(the_people_you_meet) {
case '學妹':
console.log("學妹你好啊~最近怎麼樣啊~?");
break;
case '學弟':
console.log("...");
break;
case '這學期教你的教授':
console.log("教授好!");
break;
case '之前當過你的教授':
console.log("ヽ(#`Д´)ノ);
break;
default:
console.log("╮(╯_╰)╭...你誰啊");
}
我們來點情境吧,情境二
走在路上時,遇到一百個人
要分別對每個人做情境一做的事情
迴圈
讓電腦幫你做一件事做數千數萬遍
回想上個星期的遊戲
for 迴圈
- 第一格:進入迴圈時進行的
- 第二格:每次執行 {} 內的程式碼之前會檢查時,若為false則跳出迴圈
- 第三格:每次執行完一次 {} 內的程式碼,之後所要執行的事情
for (var i = 0; i <= 100; i++){
//do something...
}
for 有三格(用 ; 隔開)
回到我們的情境二
for(i = 0 ; i <= 100 ; i++){
the_people_you_meet = meet_a_people();
if(the_people_you_meet == '學妹')
console.log("學妹你好啊~最近怎麼樣啊~?");
else if(the_people_you_meet == '學弟')
console.log("...");
else if(the_people_you_meet == '這學期教你的教授')
console.log("教授好!");
else if(the_people_you_meet == '之前當過你的教授')
console.log("ヽ(#`Д´)ノ");
}
while 迴圈
只有一格,只要那格為true 就會不斷執行
var i = 0
while(i <= 100){
the_people_you_meet = meet_a_people();
if(the_people_you_meet == '學妹')
console.log("學妹你好啊~最近怎麼樣啊~?");
else if(the_people_you_meet == '學弟')
console.log("...");
else if(the_people_you_meet == '這學期教你的教授')
console.log("教授好!");
else if(the_people_you_meet == '之前當過你的教授')
console.log("(ノ`⊿´)ノ");
i++;
}
我們來點情境吧,情境三
走在路上時,遇到100個人
要分別把每個人的身分記下來...
陣列
簡單來說就是把一堆變數用編號串起來
- 用 [] 表示
- 變數名稱後面加上 [<編號>] 來存取值
var people = [];
var people = ['學妹','學弟','這學期教你的教授','之前當過你的教授'];
var array[0]; // '學妹'
var array[2]; // '這學期教你的教授'
var array[3]; // '之前當過你的教授'
var peoples = [];
for(i = 0 ; i <= 100 ; i++){
peoples[i] = meet_a_people();
}
console.log(peoples);
【注意】
去找拿不到的編號時,會得到 undefined
JS不會對此噴錯誤
謝謝~~
有任何問題都可以提問哦
學習程式是靠熱忱和找自己麻煩(?
最重要的還是要自己主動學習
JavaScript
By jerryshey
JavaScript
- 1,052