這一系列為 Anthony Alicea 的 「JavaScript 全攻略:克服 JS 的奇怪部分」課程筆記。
JavaScript 在呼叫函式的時候,到底發生了什麼事?是如何被執行的?
了解這些重不重要?應該很重要,就像一部車,如果不知道結構,要修理它恐怕很難吧?抱著這總心態,既然要學 JavaScript,那就好好瞭解它的運作原理吧。
我們先來想像一下,以下這段碼,在被編譯的時候,是怎麼進行的。
1 | function b() {} |
這一系列為 Anthony Alicea 的 「JavaScript 全攻略:克服 JS 的奇怪部分」課程筆記。
JavaScript 在呼叫函式的時候,到底發生了什麼事?是如何被執行的?
了解這些重不重要?應該很重要,就像一部車,如果不知道結構,要修理它恐怕很難吧?抱著這總心態,既然要學 JavaScript,那就好好瞭解它的運作原理吧。
我們先來想像一下,以下這段碼,在被編譯的時候,是怎麼進行的。
1 | function b() {} |
slice() 中文直譯為切片,即是從陣列複製一份出來。
有時我們想要處理陣列資料,又不想動到原始資料,因為一但動到原始資料就無法回復原本的樣子,甚至要比對都無從比對,這時 slice()就常派上用場。
這點感覺有點像 git,先把資料 pull 一份下來的動作一樣。
在實作時常會聽到 call by reference 還是 call by value,這兩個有什麼不同?最簡易的解釋方法是:
call by reference : 呼叫變數的記憶體位置
call by value : 呼叫變數的值
事實上除了這兩種,還有一種叫 call by Sharing,在傳遞參數時會用到,之後再來介紹。
JavaScript 的資料型別分成原始型別(primitive values)和物件型別(Object),詳細型別可看此篇:JavaScript 基礎 型別篇