JavaScript神テクニック10選

この記事では、実務でよく使われるJavaScriptの神テクニック10選を紹介します。

1 、Optional Chaining(安全なプロパティ参照)

オブジェクトが存在しない場合でもエラーを防ぐことができます。

const name = user?.profile?.name

従来の書き方

if(user && user.profile){
  console.log(user.profile.name)
}

コードがかなりシンプルになります。

2、 Null合体演算子(??)

値が null または undefined の場合のみデフォルト値を設定できます。

const username = inputName ?? "guest"

注意

const value = 0 || 10
// 10になる

しかし

const value = 0 ?? 10
// 0になる

3、 分割代入(Destructuring)

オブジェクトから簡単に値を取り出せます。

const user = {
  name: "Taro",
  age: 30
}

const { name, age } = user

Reactなどでは必須レベルのテクニックです。

4、 スプレッド構文(…)

配列やオブジェクトを簡単にコピーできます。

const arr = [1,2,3]

const newArr = [...arr]

オブジェクトでも使えます。

const user = {name:"Taro"}

const newUser = {...user}

5、 配列の重複削除

Setを使うと簡単にできます。

const numbers = [1,2,3,3,4]

const unique = [...new Set(numbers)]

結果

[1,2,3,4]

6 、短絡評価(Short Circuit)

条件によって処理を簡単に書けます。

isLogin && showDashboard()

従来

if(isLogin){
  showDashboard()
}

7、 配列の合計を1行で

reduceを使います。

const numbers = [1,2,3,4]

const sum = numbers.reduce((a,b)=>a+b,0)

結果

10

8、 配列をオブジェクトに変換

const users = [
 {id:1,name:"Taro"},
 {id:2,name:"Hanako"}
]

const map = Object.fromEntries(
  users.map(u => [u.id, u])
)

結果

{
 1:{id:1,name:"Taro"},
 2:{id:2,name:"Hanako"}
}

検索速度が上がります。

9、 Promiseを並列処理

非同期処理を高速化できます。

const results = await Promise.all([
  fetchUser(),
  fetchPosts(),
  fetchComments()
])

順番に処理するより圧倒的に高速です。

10、 オブジェクトのキー取得

const user = {
  name:"Taro",
  age:30
}

Object.keys(user)
Object.values(user)
Object.entries(user)

結果

["name","age"]

["Taro",30]

[
  ['name', 'Taro'],
  ['age', 30]
]

まとめ

JavaScriptの神テクニックとして紹介したのは次の10個です。

  • Optional Chaining
  • Null合体演算子
  • 分割代入
  • スプレッド構文
  • Setで重複削除
  • 短絡評価
  • reduceで合計
  • 配列→オブジェクト変換
  • Promise.all並列処理
  • Object.keys / values / entries

これらは モダンJavaScriptでは必須レベルのテクニックです。

知らないものがあれば

ぜひ実務コードに取り入れてみてください。

    コメント

    コメントを残す

    メールアドレスが公開されることはありません。 が付いている欄は必須項目です