2019年3月31日 星期日

[Back To Basic] Javascript - Object

在 javascript 中,除了 Primitive 以外,其他都是 Object。

Primitive

是不可變(Immutable)的。

Object Method

  • object method 也是 object property
  • 包含 function definition

建立 Object

建立 Object 有數種方式
  • Object Literal(建議用法)
var user = { name: 'Shawn', age: 18 };
  • 關鍵字 new
var user2 = Object();
user2.name = 'Shawn';
user2.age = 18;

物件(Object)是可變的(Mutable)

物件是可變的,是傳址(by reference)的概念


2019年3月27日 星期三

[Back To Basic] Javascript - JSON

JSON(JavaScript Object Notation)

  • 一種儲存/傳輸的資料格式
  • 通常用於往返 client 和 server
  • 是一個獨立的語言
  • 輕便的資料交換格式
  • 語法從 javascript 的 object 延伸而成
  • 很容易和 javascript 的 object 相互轉換

JSON語法

  • 一個資料名稱 對應 一個資料值
  • 用逗號分隔
  • {} 表示物件(object)
  • []  表示陣列(array)
  • 資料名稱必須用雙引號框住, javascript的 object 不用
{
"member":[

  {
    "name": "Shawn",
    "age": 18
  },
  {
    "name": "Koji",
    "age": 22
  }
]}

[Back To Basic] Javascript - ES6

ES6 = ECMAScript 6 = ECMAScript 2015


// 設定 y 的預設值
function count(x, y = 5) {
    return x + y;
}
  • Array.find()
  • Array.findIndex()
  • 新增常數
    • Number.EPSILON
    • Number.MIN_SAFE_INTEGER
    • Number.MAX_SAFE_INTEGER
  • Number.isInteger()
  • Number.isSafeInteger()
安全的數值介於 -(2^53 - 1) ~ (2^53 - 1) 之間
  • isFinite()
是否為有限數值
  • isNaN()
是否不是數值

Arrow Functions

新語法: const myFunction = (x, y) =>  x + y ;
可取代:
function(x , y) {
  return x + y;
}
特性
  • arrow function 沒有自己的 this
  • 不適合用來定義object的method
  • arrow function 不會 hoisting
  • 建議使用 const,因為 arrow function 通常定義後就不會改變
  • 建議保持大括號和 return,因為大括號和保留字只有一行陳述式可省略
 const myFunction = (x, y) =>  { return x + y };