LoginSignup
1
1

More than 1 year has passed since last update.

JSの書き方について

Last updated at Posted at 2022-11-17

Javascriptの書き方は人それぞれ

こんにちは!Zackeyです。
仕事をしているとよく人の書いたコードを読む機会があると思います。
JavaやC#などコンパイル型の言語は割としっかりと書いてありますよね。
誰のを読んでもそこまで困らない。

いつも思うのはJS(jQuery)なんです!
とにかく読みづらいものから、めちゃくちゃ読みやすい書き方まであるので、
ここでは私的読みやすいコーディングを書いていこうともいます。

関数型言語なんだよ・・・

JSは関数型の言語です!
つまり実行時には基本的に関数(function)が動作するということ。
それに基づいて書いていく!ってのが我流です。

悪い例

ここでは今まで見た中でもかなり悪い例を書いていきます。

$(function () {
  $('.node').on('click', function () {
    console.log('click');
  });
});
$(function () {
  $('.node').on('change', function () {
    console.log('change');
  });
});

こんな感じ、、、
クッソきもいですね!
しかも発火タイミングが謎ですね!ぶっ〇しますよ!
これメンテしてって言われたら多分書き換えから視野に入ります。
実際に現場で結構目にする書き方なんで本当につらい。。。

私的な例

先ほどのコードをよりきれいにすっきり書いていきましょう。
まず$(function () {})ですがこれはdocument.onredyとほぼ同じなんで複数書かないでください!

$(function () {
  $('.node').on('click', function () {
    console.log('click');
  });

  $('.node').on('change', function () {
    console.log('change');
  });
});

一つにまとめました。
次に関数型の言語なわけですから、引数に毎度毎度functionって書くんじゃあねえ!
thisの考え方もまばらになりがちなので、関数は事前に定義しときましょう!

var action = function (event) {
    console.log(event.data.text);
}

$(function () {
  $('.node').on('click', { text: 'click' }, action);
  $('.node').on('change', { text: 'change' }, action);
});

だいぶましになってきました。
あとは渡すときにdataオブジェクトを前もって作っとくほうがきれいですね!

var action = function (ev) {
    console.log(ev.data.text);
}

$(function () {
  var clickOptions = {};
  var changeOptions = {};

  click.text = 'click';
  change.text = 'change';

  $('.node').on('click', clickOptions, action);
  $('.node').on('change', changeOptions, action);
});

個人的にはこれですっきり

フレームワークとTypescript

近年はWebAPPを作成する際はJSフレームワークとしてAngulerやVue、Reactなどを使ってコーディングするのが主流となっています。
どのFWもTypescriptを推奨しています。
厳格な型定義型であるTypescriptにさっと移行できるように、動けばいいJSを書くのは卒業しましょう!

1
1
6

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1