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