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

LT_2021_5_7

 LT_2021_5_7

Fe31ecc292bedb0650808734e3f9143b?s=128

baochanh18

May 07, 2021
Tweet

Transcript

  1. ・社内LT ・@Bao Chanh(チャイン) ・2021年5月7日

  2. 自己紹介 • 名前:ズオン バオ チャイン • 年齢:23歳 • 趣味:アニメ、ゲーム •

    予定:2021年4月に入社
  3. Null演算子

  4. Null演算子 • Null演算子は論理演算子の一種 • 左辺が null、undefined の場合に右の値を返す • 以外の場合に左の値を返す •

    構文:expr1 ?? expr2
  5. Null演算子 OR演算子 let a = '' let b = 0

    let c = null let val = a || 'not found' // val = 'not found' val = b || 'not found' // val = 'not found' val = c || 'not found' // val = 'not found' Null演算子 let a = '' let b = 0 let c = null let val = a ?? 'not found' // val = '' val = b ?? 'not found' // val = 0 val = c ?? 'not found' // val = 'not found'
  6. Optional chaining

  7. Optional chaining • オプショナルチェイニング演算子 • プロパティの値を読み込む • チェーン内の各参照が正しいかどうかを明らかに確認す る必要がない •

    構文:obj.val?.prop obj.arr?.[index] obj.func?.(args)
  8. Optional chaining let usersList = { user1: { name: 'a',

    age: 18}, User2: { name: 'b’, age: 20} }
  9. Optional chaining let usersList = { user1: { name: 'a',

    age: 18}, User2: { name: 'b’, age: 20} } let userName = usersList.user1.name //userName = a
  10. Optional chaining let usersList = { //user1: { name: 'a',

    age: 18}, User2: { name: 'b’, age: 20} } let userName = usersList.user1.name Error: Cannot read property 'name' of undefined
  11. Optional chaining let usersList = { //user1: { name: 'a',

    age: 18}, User2: { name: 'b’, age: 20} } let userName = usersList.user1 && usersList.user1.name //userName = undefined
  12. Optional chaining let usersList = { //user1: { name: 'a',

    age: 18}, User2: { name: 'b’, age: 20} } let userName = usersList.user1?.name //userName = undefined
  13. Optional chaining let usersList = { //user1: { name: 'a',

    age: 18}, User2: { name: 'b’, age: 20} } let userName = usersList.user1?.name //等価 //let temp = usersList.user1 //let username = ((temp === null || temp === undefined) ? Undefined : temp.name)
  14. Private fields

  15. Private fields • ES11からプライベートなクラスフィールドを定義できる • 構文: class ClassWithPrivateField { #privateField

    } class ClassWithPrivateMethod { #privateMethod() { return 'hello world’ } }
  16. 数値の区切り文字

  17. 数値の区切り文字 • 数値の可読性を高めるため • 10進数、2進数、8進数、16進数を区切る • 構文: • 10進数:1_000_000_000_00 •

    2進数:0b1010_0001_1000_0101 • 8進数:0o2_2_5_6 • 16進数:0xA0_B0_C0
  18. 数値の区切り文字 • 規則: // 連続して2つ以上のアンダースコアは許可されていません 100__000 // SyntaxError // 数値リテラルの末尾に置くことは許可されていません

    100_ // SyntaxError // 先頭の 0 の後に使用することはできません 0_1 // SyntaxError
  19. ありがとうございます