タグ

ブックマーク / numb86-tech.hatenablog.com (4)

  • JavaScriptのショートサーキット評価 - 30歳からのプログラミング

    ほとんどのプログラミング言語には、ANDやORを表す論理演算子が用意されている。 そして、左辺を評価した時点で論理式の結果が確定した場合には右辺の評価を行わないことを、ショートサーキット評価(短絡評価)という。 例えば、A AND Bという論理式があった場合、Aがfalseなら、その時点で式全体の結果はfalseで確定するため、Bがどうであるかについてはチェックしない。 JavaScriptの論理和演算子||と論理積演算子&&も、ショートサーキット評価を行う。 これを利用することで、コードを簡略化したり、パフォーマンスを向上させたりすることが出来る。 論理演算子の挙動 ショートサーキット評価を利用するためにはまず、論理演算子がどのように動くのかを理解しないといけない。 なお、以下の説明は、どのような結果を生むのかについての説明であり、内部的な挙動については正確ではない可能性がある。 まずは

    JavaScriptのショートサーキット評価 - 30歳からのプログラミング
    jsstudy
    jsstudy 2019/08/04
    短絡評価の使い道
  • React Hooks + Redux Hooks + TypeScript で SPA を構築する(追記あり) - 30歳からのプログラミング

    2020/05/31 追記 勉強や経験を重ねた結果、この記事を執筆した時より知識が増え、コードの書き方にも変化があります。 サンプルアプリも同様で、以下のプロダクトのコードのほうが、今の自分の考えが反映されていると思います。 github.com 追記終わり 2019/07/14 追記 ディスカウント後の価格みたいな導出項目はselector (reselect)を使うとよいのでは https://redux.js.org/recipes/computing-derived-data - YonmanHasse のブックマーク / はてなブックマーク というコメントを頂き、確かに便利そうだったので導入した。 それに合わせてこの記事の内容もアップデートした。 追記終わり タイトルに書いた組み合わせで SPA を作るときにどのような設計にするのか、現時点での考えを記録しておく。 チュートリアル

    React Hooks + Redux Hooks + TypeScript で SPA を構築する(追記あり) - 30歳からのプログラミング
  • mochaとchaiの最も基本的な使い方 - 30歳からのプログラミング

    以前、テストについて調べていて、mochaというのものが広く使われていることを知った。 だがその時はNode.jsに触ったことがなく、コマンドラインにも強い苦手意識があったので、導入できなかった。 結局QUnitを使ってみることになり、それに対して強い不満があったわけではないのだが、そろそろmochaに再挑戦してみることにした。 Node.jsの概要くらいは分かったし、コマンドラインにも少しは慣れた。QUnitのおかげで、テストという概念についても知ることが出来た。以前の自分とは違うぜ、ということで。 そもそも、QUnitではNode.jsのテストが出来ない。 テスティングフレームワークとアサーションライブラリ テストを行うためには、この両方が必要となる。 テスティングフレームワークは、テスト全体を取りまとめて管理したり、画面に表示したりするためのもの。 アサーションは、個々のテストの判定

    mochaとchaiの最も基本的な使い方 - 30歳からのプログラミング
  • JavaScriptの末尾呼び出し最適化(TCO) - 30歳からのプログラミング

    JavaScriptには、再帰が実装されている。 再帰とは、関数のなかでその関数自身を呼び出すこと。 下記のrecursion()では、再帰を行っている。 function recursion(num, limit){ console.log(num); if(num === limit){ return; }; num++; recursion(num, limit); }; recursion(0, 10);を実行すると、0から10の数字が順番に表示される。 仮引数numがlimitに到達するまでrecursion()は呼ばれ続ける。 だが、limitの数を大きくすると、途中でエラーになりプログラムが終了してしまう。 function recursion(num, limit){ console.log(num); if(num === limit){ return; }; num++

    JavaScriptの末尾呼び出し最適化(TCO) - 30歳からのプログラミング
    jsstudy
    jsstudy 2017/08/17
    末尾再帰
  • 1