JavaScript核心篇:傳值 & 傳址 發表於 2020-03-06 更新於 2020-09-28 分類於 JavaScript核心篇 傳值 & 傳址 本章參考 傳值所有的基本型別都是「傳值」。 12345var a = 10;var b = a;a = 100;console.log(a, b); // 100, 10 這邊可以看到 b = a 但是a的值改變了之後b卻維持在原位,這是因為基本型別的傳遞是利用複製的,所以 b = a 的值是複製a的值而已。 可以看作a、b兩個都是不同的個體。 所以之後a不管做了什麼樣的更新,都跟b不會有任何的關係。這種方式稱為「傳值」。 閱讀全文 »
JavaScript核心篇:未定義的物件屬性預設值 發表於 2020-03-05 更新於 2020-09-28 分類於 JavaScript核心篇 未定義的物件屬性預設值在 JavaScript 的物件下,如果去查找該物件不存在的屬性,它不會回傳 not defined,而是會回傳 undefined。 1234var family = { name: '小明家'};console.log(family.ming); // undefined 這邊如果這樣做 12345var family = { name: '小明家'};console.log(family.ming); // undefinedfamily.ming.name = '小明'; 這邊會回傳這樣 ↓ 閱讀全文 »
JavaScript核心篇:變數及物件屬性的差異 發表於 2020-03-05 更新於 2020-09-28 分類於 JavaScript核心篇 變數及物件屬性的差異123var a = 1;b = 2;console.log(window); 這邊執行 window 會發現 a、b 都在 window 裡面。 但是這兩種語法是有差別的,a 在 window 裡面它是變數,但是 b 則是屬性。那這兩者的差別又在於「變數無法被刪除,屬性可以」。 閱讀全文 »
JavaScript核心篇:物件與純值 發表於 2020-03-05 更新於 2020-09-28 分類於 JavaScript核心篇 物件與純值在 JavaScript 當中,純值是無法新增屬性的,只有物件型別可以新增屬性。 123var newString = '小明家';newString.name = '小明';console.log(newString) // 小明家 因純值無法新增屬性,所以 newString 還是會維持本來的字串,不會做任何的修改。 閱讀全文 »
JavaScript核心篇:物件結構 & 物件取值、刪除、新增 發表於 2020-03-05 更新於 2020-09-28 分類於 JavaScript核心篇 物件結構建立物件有兩種方式,一種是物件實字;另一種則是物件建構式。要設定物件的話裡面固定會有屬性跟值,屬性的名稱都會是字串不會是其他型別,值裡面可以是字串、數字、物件、函式。 物件實字物件實字語法 1234567891011var family = { name : '小明家', money: 1000, members: { mom: '老媽', dad: '老爸' }, callFamily: function(){ console.log('聯絡小明家'); }}; 閱讀全文 »
JavaScript核心篇:邏輯運算子 & 函式預設值 發表於 2020-03-04 更新於 2020-09-28 分類於 JavaScript核心篇 邏輯運算子 & 函式預設值 圖片取自 MDN 閱讀全文 »
JavaScript核心篇:Truthy&Falsy 發表於 2020-03-04 更新於 2020-09-28 分類於 JavaScript核心篇 Truthy Falsy在 JavaScript 中,truthy(真值) 指的是在布林值判斷中,轉換後的值為真的值。我們也可以另外一個方向來理解「除了 falsy 以外的值都是 truthy」,那我們就可以來看看 falsy 的值有哪些了。如下 0 NaN ‘’ (空字串) false null undefined 閱讀全文 »
JavaScript核心篇:寬鬆相等、嚴格相等以及隱含轉型 發表於 2020-03-03 更新於 2020-09-28 分類於 JavaScript核心篇 寬鬆相等、嚴格相等以及隱含轉型 「== 允許在比較中強制轉型,=== 不允許。」 嚴格相等嚴格相等必須值、型別都要相同才會回傳 true。 閱讀全文 »
JavaScript核心篇:優先性、相依性 發表於 2020-03-02 更新於 2020-09-28 分類於 JavaScript核心篇 優先性及相依性優先性優先序較高的運算子會成為優先序較低的運算子的運算元。例:乘除的符號優先性大於加減,所以會先乘除後加減。 相依性相依性決定運算方向。例:加減乘除都是由左至右、等號則是由右至左。而當優先性相同時依據相依性的運算方向執行。 加減乘除優先性以 var a = 2 * 2 + 2 * 3; 為例子 因為 *(乘號)的優先性大於 +(加號),所以會先進行乘的動作,接著乘出來的數字就是 +(加號)的運算元,這也符合描述的優先性。 閱讀全文 »
JavaScript核心篇:運算子 發表於 2020-03-01 更新於 2020-09-28 分類於 JavaScript核心篇 運算子運算子一定會回傳一個結果,JavaScript 常見的運算子有二元運算子、一元運算子,以及一種特殊的 三元運算子,也就是 條件運算子。 閱讀全文 »