ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript アロー関数ジェネレーター Date JSON の詳細な解釈

JavaScript アロー関数ジェネレーター Date JSON の詳細な解釈

亚连
亚连オリジナル
2018-05-21 11:58:471787ブラウズ

ここで、JavaScript アロー関数ジェネレーター Date JSON の簡単な分析をお届けします。今からそれを皆さんと共有し、皆さんの参考にしてください。

ES6 標準には、新しい関数である Arrow Function が追加されています。

    x => x *x
    上面的箭头相当于:
      function (x){ 
          return x*x;
      }

アロー関数は匿名関数と同等であり、関数定義を簡素化します。上記のようなものには式が 1 つだけ含まれており、

{ ... } や return も省略されています。複数のステートメントを含めることができる別のメソッドがあります。この場合、{ ... } と return は省略できません:

        x =>{ 
          if(x > 0){ 
            return x * x;
          }else{ 
            return -x *x;
          }
        }

パラメータが 1 つでない場合は、括弧 () を使用して囲む必要があります:

    // 两个参数
      (x,y) => x*x + y *y
    // 无参数;
      () =>3.14
    // 可变参数
      (x,y,...rest) =>{ 
        var i, sum = x +y;
        for(i=0;i<rest.length;i++){ 
          sum += rest[i];
        }
      return sum;
    }

this

さて、アロー関数は this のポインティングを完全に修復します。これは常に外部呼び出し元オブジェクトである字句スコープを指します。 rrree

はもう必要ありません。

これはスコープ付きかどうかに応じてアロー関数内でバインドされているため、call() または apply() でアロー関数を呼び出す場合、これを

バインドすることはできません。つまり、最初に渡されるパラメータは忘れる。

    var obj = { 
        birth:1990,
        getAge:function(){ 
        var b = this.birth; // 1990
        var fn = () => new Date().getFullYear() - this.birth; // this指向obj 对象。
        return fn();
        }
    }
    obj.getAge(); // 25

generator

generator (ジェネレーター) は、ES6 標準によって導入された新しいデータ型です。ジェネレーターは関数のように見えますが、複数回返すことができます。

var that = this;
ジェネレーターと関数の違いは、ジェネレーターが function* (余分な * 記号に注意してください) によって定義され、return ステートメントに加えて、yield を使用して複数回返すこともできることです。

この関数は 1 回しか返せないため、Tourmaline は配列を返しますが、ジェネレーターに置き換えると、一度に 1 つの数値を複数回返すことができます。

    var obj = { 
        birth:1990,
        getAge:function(year){ 
          var b = this.burth; // 1990
          var fn = (y) =>y-this.birth; // this.birth 仍是1990
          return fn.call({birth:2000},year);
      }
    };
    obj.getAge(2015); // 25

直接呼び出してみる:

    function* foo(x){ 
        yield x +1;
        yieldx + 2;
        return x +3;
    }

ジェネレーターの直接呼び出しは、関数の呼び出しとは異なります。 fib(5) はジェネレーター オブジェクトを作成するだけで、まだ実行されていません。

ジェネレーター オブジェクトを呼び出す方法は 2 つあります。1 つは、ジェネレーター オブジェクトの next() メソッドを継続的に呼び出す方法です。 。

現在のシステム時刻を取得するには、次を使用します:

    function* fib(max){ 
        var t,
        a = 0,
        b=1,
        n=1;
        while (n < max){ 
          yield a;
          t = a +b;
          a = b;
          b = t;
          n++;
        }
        return a; 
      }

JSONJSON は、データ交換形式である JavaScript Object Notation の略称です。

JSON には、いくつかのデータ型しかありません:

1,number: JavaScript の数値とまったく同じです。

2,boolean: JavaScript の true または false です。 3,String: JavaScript の数値です。 String ;4,null: は JavaScript の null;

5,array: JavaScript の Array 表現 - [];

6,object: は JavaScript の {...} 表現です。

SONでは文字セットがUTF-8であることも規定されているので、複数の言語を表現していても問題ありません。統合解析の場合、JSON 文字列には二重引用符 "" を使用する必要があり、オブジェクト キーにも二重引用符 "" を使用する必要があります。

シリアル化

fib(5); // fib {[[GeneratorStatus]]: "suspended", [[GeneratorReceiver]]: Window}

結果:

    var f = fib(5);
    f.next(); // {value: 0, done: false}
    f.next(); // {value: 1, done: false}
    f.next(); // {value: 1, done: false}
    f.next(); // {value: 2, done: false}
    f.next(); // {value: 3, done: true}

2 番目のパラメーターは、指定された属性のみを出力したい場合は、配列

JSON を渡すことができます。 stringify(xiaoming, ['name', 'skills'], ' ');

Result:

    var now = new Date();
    now; //// Wed Jun 24 2015 19:49:22 GMT+0800 (CST)
    now.getFullYear(); //2015,年份
    now.getMonth(); // 5,月份,注意月份范围为0~11,5表示六月
    now.getDate();// 24 ,表示24 号
    now.getHours(); // 3,表示星期三
    now.getMinutes(); // 19 ,24小时制
    now.getSeconds(); // 22,秒
    now.getMilliseconds(); //875 毫秒
    now.getTime(); // 1435146562875, 以number形式表示的时间戳
    如果要创建一个执行日期和时间的Date对象,可以用:
    var d = new Date(2015,5,19,20,15,30,123);
    d;// Fri Jun 19 2015 20:15:30 GMT+0800 (CST)

オブジェクトの各キーと値のペアが最初に関数によって処理されるように関数を渡すこともできます:

var guagua = {
name: &#39;小明&#39;,
age: 14,
gender: true,
height: 1.65,
grade: null,
&#39;middle-school&#39;: &#39;\"W3C\" Middle School&#39;,
 skills: [&#39;JavaScript&#39;, &#39;Java&#39;, &#39;Python&#39;, &#39;Lisp&#39;]
};
 JSON.stringify(xiaoming); // &#39;{"name":"小明","age":14,"gender":true,"height":1.65,"grade":null,"

middle-school":"\"W3C\" Middle School","skills":  ["JavaScript","Java","Python","Lisp"]}&#39;
上記のコードはすべてを組み合わせています。属性値はすべて大文字です:

  {
"name": "小明",
"age": 14,
"gender": true,
"height": 1.65,
"grade": null,
"middle-school": "\"W3C\" Middle School",
"skills": [
  "JavaScript",
  "Java",
  "Python",
  "Lisp"
  ]
  }

Xiaoming をシリアル化する方法も正確に制御したい場合は、xiaoming の toJSON() メソッドを定義してデータを直接返すことができます。 JSON はシリアル化する必要があります:

Deserialization

JSON 形式で文字列を取得します。JSON.parse() を直接使用して、それを JavaScript オブジェクトに変換します:

{
  "name": "guagua",
  "skills": [
  "JavaScript",
  "Java",
  "Python",
  "Lisp"
]
  }

上記は、私が皆さんのためにコンパイルしたものです。将来みんなに役立つでしょう。

関連記事:

JavaScriptのブロックレベルのスコープ、プライベート変数、モジュールモードを深く理解する(画像とテキストのチュートリアル)

JavaScriptの出力表示内容(基本的なチュートリアル)

JavaScriptの通常関数と構造 関数の違い (コードと組み合わせて詳しく説明)

以上がJavaScript アロー関数ジェネレーター Date JSON の詳細な解釈の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。