摘 —— JavaScript 中的參數傳遞是 Call by 什麼?

因為以前寫程式的時候偶爾會撞到這個雷,所以就有查了下。如果實際去搜尋,就會看到這篇 《深入探討 JavaScript 中的參數傳遞:call by value 還是 reference?》

原作者寫得非常好,但我覺得文章太長了。能寫出整個追查的脈絡還不錯,甚至還引了 Java 和 C/C++ 來對照,功力不夠還真無法寫出這篇文章。而我之所以寫這篇文,就是想簡單地彙整「JavaScript 中的參數傳遞是 Call by 什麼?」的結論。

重點

  1. 純值(Primitive types)是 call by value,會複製一份進函式中。
  2. 物件(Object)是 / 類似 call by reference,會把該物件丟進去,不過要注意
    1. 可以在函式中改這個 object 裡面的值。
    2. 直接改變用來 Ref 的變數的話,該變數就會指到新的 object,而不影響一開始被指導的 Object。
Continue reading “摘 —— JavaScript 中的參數傳遞是 Call by 什麼?”

JavaScript hoisting 是什麼?寫個筆記記錄一下

最近讀了海總的《本末倒置的閱讀習慣》,發現自己也有這個壞習慣。 想要來好好地注意這個問題,避免只砸時間在不用細讀的文章。剛好小蟹分享了這篇 《我知道你懂 hoisting,可是你了解到多深?》 給我,便決定在舒服的假日午後好好地閱讀一下,以便能好好地了解 javascript hoisting 是怎麼一回事。

而這篇文章就是在記錄自己閱讀過程中的 murmur,順便摘一下, 略微地希望可以替未來的自己省下重新閱讀的時間。

Continue reading “JavaScript hoisting 是什麼?寫個筆記記錄一下”

JavaScript 抓得住你

前言

最近一直在接觸前端,無論是 g0v 還是 MozTW,總是會有一些新的技術讓我感到驚豔。 舉例來說,我在幫忙開發 MozTW 的網站時就是使用 nodejs 下的 grunt-cli, 或是幫忙 WM 維護網站學會的 Jekyll,接觸到了 SASS/SCSS,(雖然還不夠完善而沒有被 merge…), 也因此更知道了自己的不足,還有很多很多東西等著我去學。 最近恰逢學校選課時節需要安排課表,我就想自己寫出一個課表,但還沒開始研究,所以今天的主題不是這個,而是 JavaScript XD

JavaScript 已經漸漸成為不可或缺的存在。
Photo by Joshua Aragon on Unsplash
Continue reading “JavaScript 抓得住你”