Upgrade to Pro — share decks privately, control downloads, hide ads and more …

社内LT2019/10/24

 社内LT2019/10/24

Kento Matsumoto

October 24, 2019
Tweet

More Decks by Kento Matsumoto

Other Decks in Programming

Transcript

  1. データ型 プリミティブ型 - 値型 - ラッパーオブジェクトが用意されている (Number, String, Boolean) ex)

    数値・文字列・論理値・ null・undefined オブジェクト型 - 参照型 - プロパティを持っている  ex) function, object .etc let a = 'a' let b = a // a=’a’ b=’a’ b = 'b' // a=’a’ b=’b’ let objA = new Object() let objB = objA // a={} b={} objB.b = 'b' // a={b:’b’} b={b:’b’}
  2. ラッパーオブジェクトの挙動 let a = 'a' // ラッパーオブジェクトの例 a.length // 1

    プリミティブ型をあたかもオブジェクトのように扱える let a = 'a' b = new String(a) b.length // 1 b = null // プロパティやメソッドが呼ばれる度にラッパーオブジェクト作成 let a = 'a' a.a = a a.a // undefined
  3. オブジェクトを固くしたい時 (freeze, seal, extensions) let objA = {a: 1} let

    objB = {b: 1} let objC = {c: 1} Object.freeze(objA) Object.seal(objB) Object.preventExtensions(objC) Object.isFrozen(objA) // true Object.isFrozen(objB) // false Object.isFrozen(objC) // false let objA = {} let objB = {} let objC = {} Object.freeze(objA) Object.seal(objB) Object.preventExtensions(objC) Object.isFrozen(objA) // true Object.isFrozen(objB) // true Object.isFrozen(objC) // true
  4. nullの不思議 let a = undefined a // undefined typeof a

    // undefined nullはオブジェクトである(歴史的経緯から) let a = null a // null typeof null // object