0%

這一系列為 Anthony Alicea 的 「JavaScript 全攻略:克服 JS 的奇怪部分」課程筆記。
JavaScript 在呼叫函式的時候,到底發生了什麼事?是如何被執行的?
了解這些重不重要?應該很重要,就像一部車,如果不知道結構,要修理它恐怕很難吧?抱著這總心態,既然要學 JavaScript,那就好好瞭解它的運作原理吧。

我們先來想像一下,以下這段碼,在被編譯的時候,是怎麼進行的。

1
2
3
4
5
function b() {}
function a() {
b();
}
a();
Read more »

陣列在 JS 裡的原生型別是 object,這點可以由 typeof 來確認。但如果要確認某一元素的原型是陣列,或是在物件裡的某一元素是陣列,又該怎麼判別?
如果元素不是陣列,就無法使用陣列專用的函式或做些陣列的處理,因此才會有確認某元素的原型是陣列的需求。

1.isArray

最簡單的陣列判斷語法 isArray,用的是內建 Array 物件中的 isArray,是個 ES5 的標準方法:
Array.isArray(variable)

1
2
var a = [1, 2, 3, 4, 5];
Array.isArray(a); // true
Read more »

slice() 中文直譯為切片,即是從陣列複製一份出來。
有時我們想要處理陣列資料,又不想動到原始資料,因為一但動到原始資料就無法回復原本的樣子,甚至要比對都無從比對,這時 slice()就常派上用場。
這點感覺有點像 git,先把資料 pull 一份下來的動作一樣。

Read more »

Converting strings to numbers with vanilla JavaScript

透過瀏覽器輸入的內容,要拿來做運算用的時候,必須先轉成數字,否則運算出來結果一定會讓人出乎意料。列如要使用者輸入兩個數字,然後將其相加,再將結果顯示於畫面,如果不做轉型,則會 1 + 1 = 11, 4 + 2 = 42,而不是我們想要的 2 和 6。

Read more »

判斷條件練習

練習一:判斷是否及格

請你自己寫出一段程式碼,是判斷一個叫做 score 的變數是否及格(超過或剛好 60 分),如果及格的話就輸出 pass,否則輸出 fail。
進階練習:
除了判斷是否及格以外,也請你對滿分做出特別判斷,如果是 100 分的話就輸出 you are no1!

Read more »

SASS 重點

  • Variables 變數
  • Nesting 巢狀
  • Partials / Imports
  • Functions & Mixins 函式 & 巢狀
  • Conditionale 條件式
  • Operators & Calculations 必較與計算子
  • Color Functions 顏色函式
    Read more »

前言

可能在 42 學 C 的時候,學校規定只能用 while 迴圈,所以已經習慣 While 一行行跑的步驟,自從開始用 for 之後,雖然碼比較簡潔,但自己千萬沒想到對它的誤解這磨深…..。以為是只要條件符合就直接 i++ 了,但其實並不是!!是如果條件符合,會先去跑我們要叫它做的事,然後再 i++ 。視覺上看是條件符合後就 i++ 是個大雷,切記。
==也就是說只要條件符合+ return,就會跳出 loop==

Read more »

相等比較運算 == 與 === 的不同

兩個等號通常是拿來比較兩邊的==值==是否不同
三個等號除了判斷==值==是否相同,也會判斷==型別==是否相同。

兩個等於會引發諸多問題的原因是 JS 常會暗地裡幫我們將資料轉型別,所以常常莫名的就通過判斷。以至於很容易就會出現誤判型別而導致出現錯誤。在使用判斷比較時盡量或只使用三個等於會比較精確與安全。

Read more »

在實作時常會聽到 call by reference 還是 call by value,這兩個有什麼不同?最簡易的解釋方法是:
call by reference : 呼叫變數的記憶體位置
call by value : 呼叫變數的值

事實上除了這兩種,還有一種叫 call by Sharing,在傳遞參數時會用到,之後再來介紹。

JavaScript 的資料型別分成原始型別(primitive values)和物件型別(Object),詳細型別可看此篇:JavaScript 基礎 型別篇

Read more »

在本地使用 git 版本控制

init 初始化

  • 在要使用版本控制的檔案夾裡輸入 init 初始化,以 ls -la 可看到隱藏的 .git 檔案夾
  • 使用 git status 觀察版本狀態

git add 加入版本控制檔案

  • 使用 git add [fileName] 加入要版本控制的檔案,或是使用 git add . 表示全部加入
  • 使用 git status 會發現有兩區域: staged (加入)/ untracked (沒加入)版本控制,可使用 git rm —cached [fileName] 將已加入的檔案移出至 untracked。
  • 要 add 才能 commit
    Read more »