我們已經寫了這超酷的變數 來控制溫斯頓的眼睛大小,那真的非常有用 因為當我們想改變溫思頓雙眼的大小時 它省了我們很多字數 記得:之前我們需要重複寫入相同的數字四次 去改變他眼睛的大小 但是,我們還可以用變數去取代數字 即使數字不是完全一樣嗎? 例如,如果我想移溫斯頓右一點又怎樣? 我可以改變這裏每一個x座標值 但它們不全都一樣 所以我不能只用某變數來取代它們全部 但等一下! 一旦我指派變數一個數字, 我就可以使用那變數如那數字一樣 這也表示我可以使用變數和數學表示式 所以,這麼做如何: 來寫一個變數代表著溫斯頓的x座標位置 稱它為var x 非常簡單 好,現在給它溫斯頓臉部的x座標值 他的臉會被畫在x座標200的位置 所以,我們便說變數x得到200 現在我可以用我的新變數x來取代這數字 而當我改變x值時,它會移動溫斯頓的臉 但不包括他的眼睛或嘴巴 要修正那點 我們要定義他眼睛和嘴巴的位置 相對於他臉部的位置 x座標將會成爲其它所有橢圓形的中心點 所以他的臉會被畫在——那是200 先來做他的左眼 這橢圓形是他的左眼 我們可以看到它正被畫在150上 就在這裡,那是150 而且我知道150是200再少50 所以他的左眼應該位於他臉地位置,減去50 也就是x,代表他臉的位置,- 50 現在,若我改變這x座標的值 他的眼睛便會跟著臉一起移動 讓我們來做剩下的 他的右眼正被畫在300上 我可以看到這個在這裡是300 而300,我知道,是比200再多100 所以他的右眼應該位於他臉的位置加上100 也就是x + 100 現在就剩他的嘴巴了 他的嘴巴正被畫在250上 就在這裡,250的位置 而250是200加50 也就是在——噢,那是5 也就是他臉的位置,x + 50 現在——我要把這些塗鴉都擦掉 每當我改變x值,它就會移動他的整張臉 耶! 在你離開前,還有兩件關於變數的事你必須了解 一旦你用var x做了一個變數 你可以繼續賦予值給它,多少遍都可以 所以,在給x一個198的值後 我可以再說x得到300 或x得到150 從那時起,電腦就會視x 為任何我們最後賦予它的值 在這情況下,就是150 但是,你只需為每個變數寫一次var 相反地,在這裡,如果我寫var x得到150的話 那就會創造出一個叫x的全新變數 在程序上會完全消滅舊的變數x 而所有這些變數便會消失,到垃圾箱去 之後,電腦只會使用那新變數 有時你可以這麼做 而不會有什麼恐怖事情發生在你身上 但我不會這麼建議 現在,我只要來做一次:var x得到150 非常方便地,我可以把溫斯頓完全移出視窗外 以便解說下一個重點 每當你使變數等於某物 那變數就處在一個快樂、安全的地方 事實上,等號的左邊 是唯一變數可以真切感受到自己存在的地方 因為那是唯一一個電腦會把它視為變數的地方 在其他任何位置,電腦只會假裝它是一個值 所以即使我們做了像這樣的事: var x得到10 然後x得到x 唔,好混亂 在左邊,我們已有x 一個自由思考、獨立的變數 一個可以成長、改變的變數 但,在右邊,只是,它就只是10 真難過! 但那表示我們可以做些非常有用的東西像這樣: 我可以說x得到x + 1 所以,在左邊,我們已使變數 處在一個快樂、安全的地方 而在右邊,我們有這個變數 基本上據我們所知就是一個數字 也就是10 在腦中我們可以用x得到10加1來取代它 意思就是x得到11 所以,這整行基本上就是說x得到11 從現在起,x值就是11 來看看如果我們將另一個變數 帶入方程式中會發生什麼事 我要使var x得到10 var y得到20 x得到y—— 我的天阿—— 然後y得到7 好,而我想知道的是 x值是多少? 讓我們來找出答案 在這一行,我們正在建立一個新變數x 並指派它10的數值 所以x值是10 在這一行,我們正在建立一個新變數y 並給它20的數值 我們沒有對x做任何事 所以x值仍然是10 在這裡,我們在說x得到y 那蠻令人費解的,但如果你想一下 我們知道在這些變數裏只有一個 是在那快樂、安全的地方 而另一個變數正被如數字一般地對待 所以在這裡,我們可以在腦裡 使y被它的值取替,也就是20 且我們知道這行真正的意思是x得到20 所以,在這x值為20 接著,在這裡,這次我們的y正處在那快樂的位置 其實不是真的那麼混亂 因為我們在另一邊只是放了一個數字而已 所以,問題於這:當我在這改變y值時 會同時改變上面的x值嗎? 答案是: 不!不,不,不,不,不會! 你必須記住,在這裡, y正被像是數字的方式對待 電腦將會完全忽視它是一個變數 忘記它可以更改的事實 而它只會說: 「噢,y?你真正指的是20吧。」 所以在這,我們只是在指派x一個數字 而不是在指派一個變數 我們正賦予y值,也就是20 那意思是x值保持20 即使我們在最後一行改了變數y的值 呼!懂了嗎? 現在你們完全是變數專家了 恭喜!