WEBVTT 00:00:01.740 --> 00:00:03.810 我們已經寫了這超酷的變數 00:00:03.810 --> 00:00:06.440 來控制溫斯頓的眼睛大小,那真的非常有用 00:00:06.440 --> 00:00:10.096 因為當我們想改變溫思頓雙眼的大小時 它省了我們很多字數 00:00:10.296 --> 00:00:13.393 記得:之前我們需要重複寫入相同的數字四次 00:00:13.393 --> 00:00:15.966 去改變他眼睛的大小 00:00:15.966 --> 00:00:17.809 但是,我們還可以用變數去取代數字 00:00:17.809 --> 00:00:19.212 即使數字不是完全一樣嗎? 00:00:19.212 --> 00:00:21.716 例如,如果我想移溫斯頓右一點又怎樣? 00:00:21.716 --> 00:00:23.763 我可以改變這裏每一個x座標值 00:00:23.763 --> 00:00:25.568 但它們不全都一樣 00:00:25.568 --> 00:00:28.063 所以我不能只用某變數來取代它們全部 00:00:28.063 --> 00:00:29.139 但等一下! 00:00:29.139 --> 00:00:30.865 一旦我指派變數一個數字, 00:00:30.865 --> 00:00:33.943 我就可以使用那變數如那數字一樣 00:00:33.943 --> 00:00:37.163 這也表示我可以使用變數和數學表示式 00:00:37.163 --> 00:00:38.346 所以,這麼做如何: 00:00:38.346 --> 00:00:41.079 來寫一個變數代表著溫斯頓的x座標位置 00:00:41.079 --> 00:00:43.424 稱它為var x 00:00:43.424 --> 00:00:44.595 非常簡單 00:00:44.595 --> 00:00:48.036 好,現在給它溫斯頓臉部的x座標值 00:00:48.036 --> 00:00:51.449 他的臉會被畫在x座標200的位置 00:00:51.449 --> 00:00:54.423 所以,我們便說變數x得到200 00:00:55.213 --> 00:00:59.018 現在我可以用我的新變數x來取代這數字 00:00:59.018 --> 00:01:02.480 而當我改變x值時,它會移動溫斯頓的臉 00:01:02.480 --> 00:01:04.292 但不包括他的眼睛或嘴巴 00:01:04.912 --> 00:01:06.628 要修正那點 00:01:07.428 --> 00:01:10.855 我們要定義他眼睛和嘴巴的位置 00:01:10.855 --> 00:01:14.102 相對於他臉部的位置 00:01:14.862 --> 00:01:17.872 x座標將會成爲其它所有橢圓形的中心點 00:01:17.872 --> 00:01:22.642 所以他的臉會被畫在——那是200 00:01:22.642 --> 00:01:24.626 先來做他的左眼 00:01:24.626 --> 00:01:26.232 這橢圓形是他的左眼 00:01:26.232 --> 00:01:29.608 我們可以看到它正被畫在150上 00:01:29.608 --> 00:01:33.285 就在這裡,那是150 00:01:33.285 --> 00:01:37.612 而且我知道150是200再少50 00:01:37.612 --> 00:01:42.550 所以他的左眼應該位於他臉地位置,減去50 00:01:42.550 --> 00:01:47.660 也就是x,代表他臉的位置,- 50 00:01:48.020 --> 00:01:50.542 現在,若我改變這x座標的值 00:01:50.542 --> 00:01:53.254 他的眼睛便會跟著臉一起移動 00:01:53.254 --> 00:01:54.666 讓我們來做剩下的 00:01:54.666 --> 00:01:58.368 他的右眼正被畫在300上 00:01:58.368 --> 00:02:01.470 我可以看到這個在這裡是300 00:02:01.470 --> 00:02:05.874 而300,我知道,是比200再多100 00:02:05.874 --> 00:02:09.902 所以他的右眼應該位於他臉的位置加上100 00:02:09.902 --> 00:02:12.775 也就是x + 100 00:02:12.775 --> 00:02:14.241 現在就剩他的嘴巴了 00:02:14.241 --> 00:02:16.857 他的嘴巴正被畫在250上 00:02:16.857 --> 00:02:19.396 就在這裡,250的位置 00:02:19.396 --> 00:02:23.075 而250是200加50 00:02:23.075 --> 00:02:26.204 也就是在——噢,那是5 00:02:26.204 --> 00:02:30.983 也就是他臉的位置,x + 50 00:02:30.983 --> 00:02:33.347 現在——我要把這些塗鴉都擦掉 00:02:33.347 --> 00:02:38.223 每當我改變x值,它就會移動他的整張臉 00:02:38.223 --> 00:02:39.579 耶! 00:02:39.579 --> 00:02:42.662 在你離開前,還有兩件關於變數的事你必須了解 00:02:42.662 --> 00:02:45.858 一旦你用var x做了一個變數 00:02:45.858 --> 00:02:48.525 你可以繼續賦予值給它,多少遍都可以 00:02:48.525 --> 00:02:51.504 所以,在給x一個198的值後 00:02:51.504 --> 00:02:54.947 我可以再說x得到300 00:02:54.947 --> 00:02:59.240 或x得到150 00:02:59.240 --> 00:03:01.216 從那時起,電腦就會視x 00:03:01.216 --> 00:03:03.572 為任何我們最後賦予它的值 00:03:03.572 --> 00:03:05.419 在這情況下,就是150 00:03:05.419 --> 00:03:08.235 但是,你只需為每個變數寫一次var 00:03:08.235 --> 00:03:12.790 相反地,在這裡,如果我寫var x得到150的話 00:03:12.790 --> 00:03:15.825 那就會創造出一個叫x的全新變數 00:03:15.825 --> 00:03:18.394 在程序上會完全消滅舊的變數x 00:03:18.394 --> 00:03:21.563 而所有這些變數便會消失,到垃圾箱去 00:03:21.563 --> 00:03:24.615 之後,電腦只會使用那新變數 00:03:24.615 --> 00:03:28.127 有時你可以這麼做 而不會有什麼恐怖事情發生在你身上 00:03:28.127 --> 00:03:29.851 但我不會這麼建議 00:03:29.851 --> 00:03:33.208 現在,我只要來做一次:var x得到150 00:03:33.208 --> 00:03:37.186 非常方便地,我可以把溫斯頓完全移出視窗外 00:03:37.186 --> 00:03:40.254 以便解說下一個重點 00:03:40.254 --> 00:03:44.592 每當你使變數等於某物 00:03:44.592 --> 00:03:47.450 那變數就處在一個快樂、安全的地方 00:03:47.450 --> 00:03:49.501 事實上,等號的左邊 00:03:49.501 --> 00:03:53.532 是唯一變數可以真切感受到自己存在的地方 00:03:53.532 --> 00:03:57.318 因為那是唯一一個電腦會把它視為變數的地方 00:03:57.318 --> 00:04:00.037 在其他任何位置,電腦只會假裝它是一個值 00:04:00.037 --> 00:04:02.384 所以即使我們做了像這樣的事: 00:04:02.384 --> 00:04:06.041 var x得到10 00:04:06.041 --> 00:04:10.504 然後x得到x 00:04:10.504 --> 00:04:11.727 唔,好混亂 00:04:11.727 --> 00:04:14.572 在左邊,我們已有x 00:04:14.572 --> 00:04:17.497 一個自由思考、獨立的變數 00:04:17.497 --> 00:04:20.372 一個可以成長、改變的變數 00:04:20.372 --> 00:04:24.997 但,在右邊,只是,它就只是10 00:04:24.997 --> 00:04:26.523 真難過! 00:04:26.523 --> 00:04:28.939 但那表示我們可以做些非常有用的東西像這樣: 00:04:28.939 --> 00:04:33.535 我可以說x得到x + 1 00:04:33.535 --> 00:04:37.019 所以,在左邊,我們已使變數 處在一個快樂、安全的地方 00:04:37.019 --> 00:04:40.412 而在右邊,我們有這個變數 00:04:40.412 --> 00:04:42.814 基本上據我們所知就是一個數字 00:04:42.814 --> 00:04:44.206 也就是10 00:04:44.206 --> 00:04:47.939 在腦中我們可以用x得到10加1來取代它 00:04:47.939 --> 00:04:51.584 意思就是x得到11 00:04:51.584 --> 00:04:54.319 所以,這整行基本上就是說x得到11 00:04:54.319 --> 00:04:57.804 從現在起,x值就是11 00:04:57.804 --> 00:05:01.331 來看看如果我們將另一個變數 帶入方程式中會發生什麼事 00:05:01.331 --> 00:05:06.528 我要使var x得到10 00:05:06.528 --> 00:05:10.473 var y得到20 00:05:10.473 --> 00:05:12.424 x得到y—— 00:05:12.424 --> 00:05:13.835 我的天阿—— 00:05:13.835 --> 00:05:17.107 然後y得到7 00:05:17.111 --> 00:05:18.776 好,而我想知道的是 00:05:18.776 --> 00:05:22.103 x值是多少? 00:05:22.103 --> 00:05:23.531 讓我們來找出答案 00:05:23.531 --> 00:05:27.176 在這一行,我們正在建立一個新變數x 00:05:27.176 --> 00:05:29.171 並指派它10的數值 00:05:29.171 --> 00:05:31.777 所以x值是10 00:05:31.777 --> 00:05:33.909 在這一行,我們正在建立一個新變數y 00:05:33.909 --> 00:05:35.781 並給它20的數值 00:05:35.781 --> 00:05:37.123 我們沒有對x做任何事 00:05:37.123 --> 00:05:39.395 所以x值仍然是10 00:05:39.395 --> 00:05:42.206 在這裡,我們在說x得到y 00:05:42.206 --> 00:05:44.177 那蠻令人費解的,但如果你想一下 00:05:44.177 --> 00:05:46.280 我們知道在這些變數裏只有一個 00:05:46.280 --> 00:05:48.453 是在那快樂、安全的地方 00:05:48.453 --> 00:05:52.988 而另一個變數正被如數字一般地對待 00:05:53.707 --> 00:05:54.989 所以在這裡,我們可以在腦裡 00:05:54.989 --> 00:05:58.051 使y被它的值取替,也就是20 00:05:58.051 --> 00:06:01.765 且我們知道這行真正的意思是x得到20 00:06:01.772 --> 00:06:05.029 所以,在這x值為20 00:06:05.029 --> 00:06:08.825 接著,在這裡,這次我們的y正處在那快樂的位置 00:06:08.825 --> 00:06:10.421 其實不是真的那麼混亂 00:06:10.421 --> 00:06:12.828 因為我們在另一邊只是放了一個數字而已 00:06:12.828 --> 00:06:17.674 所以,問題於這:當我在這改變y值時 00:06:17.674 --> 00:06:20.810 會同時改變上面的x值嗎? 00:06:20.810 --> 00:06:22.081 答案是: 00:06:22.701 --> 00:06:25.952 不!不,不,不,不,不會! 00:06:25.952 --> 00:06:28.454 你必須記住,在這裡, 00:06:28.454 --> 00:06:31.760 y正被像是數字的方式對待 00:06:31.760 --> 00:06:34.618 電腦將會完全忽視它是一個變數 00:06:34.618 --> 00:06:36.270 忘記它可以更改的事實 00:06:36.270 --> 00:06:38.773 而它只會說: 00:06:38.773 --> 00:06:42.526 「噢,y?你真正指的是20吧。」 00:06:42.736 --> 00:06:44.921 所以在這,我們只是在指派x一個數字 00:06:44.921 --> 00:06:46.735 而不是在指派一個變數 00:06:46.735 --> 00:06:50.319 我們正賦予y值,也就是20 00:06:50.319 --> 00:06:54.224 那意思是x值保持20 00:06:54.224 --> 00:06:58.369 即使我們在最後一行改了變數y的值 00:06:59.929 --> 00:07:02.130 呼!懂了嗎? 00:07:02.130 --> 00:07:05.419 現在你們完全是變數專家了 00:07:05.419 --> 00:07:07.299 恭喜!