JavaScriptの関数式プログラミング思想-純関数


どの言語においてもBugの存在は避けられない.私たちは一連のプログラミングの思想でできるだけBugの発生を避けます.
        Bug保存の法則
        私達がウェブサイトを開発する時、いったんウェブサイトの応用コードの量が一定の程度に達したら、それは避けられないのがある種類のBugを含んで、これはJavaScript特有のものではありませんて、ほとんどの言語のすべてある共通の病気です.これは、Bugの導入を回避するためにあるコードによってはいけないという意味ではない.
        Bugの利器を避ける---純関数
        関数の概念を知っています.伝統的な関数はパラメータを受け取ってから値を返します.同じ入力Xに対して同じ出力Yがあります.すなわち、関数が実行される場合、純関数は、スコープ外の変数に依存しないし、修正しないし、自分のスコープ内だけで仕事をする場合、リターン値が必要です.
        コードを見ましょう.
var num = 20 ;
function add(x){
    return x > num;
}
add(18);
      上のコードは明らかに純関数ではなく、関数内部に外部変数numを利用しています.私たちがちょっと変えたら.
var num = 20;
function add(x,num){
   return x > num;
}
       このように書きます  関数内部にnum型参が入ってくることを純関数と呼びます.
        同じように、私たちが入ってきたパラメータが参照値である場合、このような値を今後の作業で修正するためには、クローニングの方法で実現しなければなりません.
function add(_arr){
       var obj = {
        name : "wang",
       }
       var newArr = [];
       for(var i = 0; i < _arr.length; i ++){
           newArr[i] = deepClone(_arr[i]);//       
       }
       newArr.push(obj);
      return newArr;
}
        私たちが一番よく使う純関数のところは配列フィルタリングです.
        私たちはメンバー情報を検索して表示すると、キーワードを入力するとキーワードを含むメンバー情報が表示されます.キャンセルすると、全員のメンバー情報が表示されます.
        JavaScriptキーコード:
function filterByText(text,arr){
      var newArr = [];
      for(var i = 0; i < arr.length; i ++){
            arr[i].name.indexOf(text) != -1 ? newArr.push(arr[i]) : "";
      }
      return newArr;
  }
        純関数の役割は今後のコンポーネント化開発−状態共有において多く用いられる.
        純関数のより高い利点は、予測性を強化し、コード管理の難しさを低減するために、より良い管理状態にすることですが、フロントエンドは基本的には副作用とのつきあいです.
         --ホームページ転送ゲート--