What is a “variable” and “declaring a variable”?

TD
TD’s note
Published in
3 min readJun 17, 2020

當助教有時候需要幫學生解 bug,但我覺得更有趣的是,用不一樣的方法來解釋原本已知的知識,過程中有時會思考到事物的本質。也因此,我希望能把自己的一些想法給紀錄下來。

上週遇到一位學生問:

我一直搞不懂變數是什麼,宣告是什麼?

電腦能幫我們做很多事情,但前提是,電腦需要知道

  • 要處理什麼資料
  • 怎麼處理資料

就像是老闆跟我說「誒 td,把去年的財務報表從檔案庫當中拿出來給我」,這時候我就知道

  • 要處理什麼資料:財務報表
  • 怎麼處理資料:從檔案庫當中拿出給老闆

但實際上,「財務報表」也只是個名詞而已,他對應到的,實際上是一疊 A4 大小的紙,上面有財務數據。

回頭來看看電腦怎麼運作,假設我希望電腦幫我「把我的薪水印出來」,這時候電腦需要知道

  • 要處理什麼資料:薪水
  • 怎麼處理資料:印出來

但實際上這時候,電腦程式空空如也,既不知道薪水是什麼,也不知道怎麼印出來,因此我們就會給他一些指令,像是

console.log(salary)            // 印出 salary

但這時候電腦還是不知道 salary 裡面究竟是什麼東西,就像是不知道所謂的「財務報表」長什麼樣子,因此,我們需要讓電腦知道,大聲的宣告「我的薪水就是兩萬元啦!」

let salary = 20000             // 宣告 salary

好了,如果把上面兩行程式碼放在一起,那麼就可以順利的讓電腦完成任務:

let salary = 20000    
console.log(salary) // 看到輸出結果為 20000

那你可能會問,為什麼不直接印出來就好(如下)

console.log(20000)

其實也不是不行,但隨著年資增長,我的「薪水」也會慢慢增加,也就是說 salary 裡面的資料其實會變動。

如果在 console.log() 裡面將數字寫死,那麼就無法反應我的薪水的實際狀況。 另外,如果程式的其他地方也需要薪水的資料,那麼我就要在很多地方寫上 20000,假設哪一天我的薪水有變動,我就需要同步在所有地方更改這些數字。

說到這裡,其實「變數」就是存放需要讓電腦處理的資料,我們可以自行命名這個變數的名稱,並給這個變數資料,譬如

let salary = 20000  
let mySalary = 30000
let tdSalary = 40000

建立一個新的變數的過程,就是「宣告」。

當一個變數被宣告之後,就可以在程式的其他地方被使用。像是我先前的例子,當我們宣告(詔告)大家:這疊 A4 紙的資料就是「財務報表」,之後,大家只要提到「財務報表」,就知道我們指的資料、需要處理的資料就是剛剛那疊 A4 紙。

About me

Self-taught and trained in software development knowledge and skills, I am passionate about creating changes through technology.

Find more at Github, LinkedIn, Teaching at ALPHA Camp

--

--