亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

淺析JavaScript 箭頭函數 generator Date JSON

2019-11-20 09:57:32
字體:
來源:轉載
供稿:網友

ES6 標準新增了一種新的函數: Arrow Function(箭頭函數)。

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

箭頭函數相當于匿名函數,并且簡化了函數定義。一種像上面的,只包含一個表達式,

連{ ... }和return都省略掉了。還有一種可以包含多條語句,這時候就不能省略{ ... }和return:

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

如果參數不是一個,就需要用括號()括起來:

    // 兩個參數      (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的指向,this總是指向詞法作用域,也就是外層調用者obj:

    var obj = {         birth:1990,        getAge:function(){         var b = this.birth; // 1990        var fn = () => new Date().getFullYear() - this.birth; // this指向obj 對象?!       eturn fn();        }    }    obj.getAge(); // 25

如果使用了箭頭函數,以前的那種hack 寫法;

var that = this;

就不再需要了。

由于this 在箭頭函數中已經按照是否作用域綁定了,所以,用call() 或者apply() 調用箭頭函數時,無法對this 進行

綁定,即傳入的第一個參數被忽略。

    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

generator

generator(生成器)是ES6標準引入的新型數據類型。一個generator看上去像一個函數,但可以返回多次。

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

generator 和函數不同的是,generator由function* 定義(注意多出的*號),并且,除了return 語句,還可以用yield 返回多次。

函數只能返回一次,所以碧璽返回一個Array. 但是,如果換成generator,就可以一次返回一個數,不斷返回多次。

    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;       }

直接調用試試:

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

直接調用一個generator和調用函數不一樣,fib(5)僅僅是創建了一個generator對象,還沒有去執行它。

調用generator對象有兩個方法,一是不斷地調用generator對象的next()方法:

    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}

Date

在JavaScript 中,Date 對象用來表示日期和時間的。

要獲取系統當前時間,用:

    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)

JSON

JSON是JavaScript Object Notation的縮寫,它是一種數據交換格式。

在JSON中,一共就這么幾種數據類型:

1,number: 和JavaScript的 number 完全一致;

2,boolean: 就是JavaScript的 true或 false;

3,String: 就是JavaScript的String ;

4,null: 就是JavaScript的null;

5,array: 就是JavaScript 的Array 表示方式――[];

6,object: 就是JavaScript 的{...} 表示方式。

SON還定死了字符集必須是UTF-8,表示多語言就沒有問題了。為了統一解析,JSON的字符串規定必須用雙引號"",Object的鍵也必須用雙引號""。

序列化

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

結果:

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

第二個參數用于控制如何篩選對象的鍵值,如果我們只想輸出指定的屬性,可以傳入Array:

JSON.stringify(xiaoming, ['name', 'skills'], ' ');

結果:

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

還可以傳入一個函數,這樣對象的每個鍵值對都會被函數先處理:

function convert(key, value) {if (typeof value === 'string') {  return value.toUpperCase();}  return value;}JSON.stringify(guagua, convert, ' ');

上面的代碼把所有屬性值都變成大寫:

{  "name": "guagua",  "age": 14,  "gender": true,  "height": 1.65,  "grade": null,  "middle-school": "/"W3C/" MIDDLE SCHOOL",  "skills": [  "JAVASCRIPT",  "JAVA",  "PYTHON",  "LISP"]  }

如果我們還想要精確控制如何序列化小明,可以給xiaoming定義一個toJSON()的方法,直接返回JSON應該序列化的數據:

反序列化

拿到一個JSON格式的字符串,我們直接用JSON.parse() 把它變成一個JavaScript 對象:

JSON.parse('[1,2,3,true]'); //[1,2,3,true]JSON.parse('{"name":"瓜瓜","age":14}'); // Object{name:'瓜瓜',age:14}JSON.parse('true'); // trueJSON.parse('123.45'):// 123.45JSON.parse()還可以接收一個函數,用來轉換解析出的屬性:JSON.parse('{"name":"guagua","age":14}',function(key,value){ //把number * 2if(key ==='name'){ return value + '同學'}return value;}) ; // Object{name: '瓜瓜同學',age: 14}

以上這篇淺析JavaScript 箭頭函數 generator Date JSON就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美性猛交xxxx免费看久久久| 亚洲中国色老太| 日本精品视频在线播放| 久久99久国产精品黄毛片入口| 亚洲日本欧美中文幕| 北条麻妃一区二区三区中文字幕| 亚洲欧洲国产精品| 日韩中文字幕欧美| 精品无人国产偷自产在线| 97视频在线看| 国产在线播放91| 视频一区视频二区国产精品| 日韩中文字幕在线精品| 97视频在线观看播放| 亚洲三级免费看| 91精品久久久久久久久久另类| 国产噜噜噜噜久久久久久久久| 欧美一区二粉嫩精品国产一线天| 欧美—级高清免费播放| 午夜精品在线视频| 日韩视频免费观看| 国产精品国内视频| 亚洲男人天堂久| 欧美激情亚洲一区| 久久亚洲影音av资源网| 欧美激情亚洲综合一区| 日本a级片电影一区二区| 国产日韩欧美视频在线| 精品一区二区电影| 欧美激情啊啊啊| 麻豆成人在线看| 欧美第一黄网免费网站| 日韩在线播放av| 精品久久久久久久久久久久久| 国产精品吊钟奶在线| 成人精品一区二区三区电影免费| 精品香蕉一区二区三区| 日韩av在线免费看| 日韩在线视频国产| 黑人巨大精品欧美一区二区| 国产成+人+综合+亚洲欧洲| 日韩在线视频免费观看| 亚洲精品久久7777777| 色综合伊人色综合网站| 国产亚洲精品高潮| 日韩中文字幕视频在线观看| 欧美激情精品久久久久久黑人| 日韩欧美一区视频| 一本色道久久综合狠狠躁篇怎么玩| 国产精品色悠悠| 久久久久久亚洲精品| 久久精品99久久久久久久久| 国产免费亚洲高清| 日韩精品亚洲元码| 久久久久久久久久国产精品| 91国产精品91| 日本久久亚洲电影| 精品久久久久久久大神国产| 久久综合久中文字幕青草| 国产日韩欧美在线视频观看| 欧美成人亚洲成人日韩成人| 亚洲xxx视频| 欧美性猛交xxxx乱大交极品| 久久久国产精彩视频美女艺术照福利| 久久久久999| 成人精品久久av网站| 一二美女精品欧洲| 成人免费视频在线观看超级碰| 91精品久久久久久久久久| 中文字幕精品av| 伊人伊成久久人综合网小说| 91av在线国产| 少妇激情综合网| 亚洲人成人99网站| 成人国产在线激情| 深夜福利日韩在线看| 成人写真视频福利网| 亚洲第一区在线| 色av中文字幕一区| 91沈先生作品| 国产精品久久久一区| 欧美一级黄色网| 亚洲男人天堂2024| 91精品国产91久久久久久最新| 亚洲精品视频网上网址在线观看| 91精品视频在线播放| 亚洲色图在线观看| 欧美精品videossex88| 欧美成年人在线观看| 青青草成人在线| 成人黄色大片在线免费观看| 久久亚洲电影天堂| 国产精品午夜一区二区欲梦| 自拍偷拍免费精品| 成人网在线免费看| 久久99国产精品久久久久久久久| 亚洲精品色婷婷福利天堂| 亚洲欧洲激情在线| 久久网福利资源网站| 亚洲精品第一国产综合精品| 91精品久久久久久综合乱菊| 日本午夜精品理论片a级appf发布| 97国产精品视频人人做人人爱| 欧美午夜视频在线观看| 日韩欧美在线看| 激情成人中文字幕| 国产精品成av人在线视午夜片| 久久久免费观看| 在线观看国产精品91| 亚洲精品一二区| 韩国19禁主播vip福利视频| 欧美wwwxxxx| 亚洲人成亚洲人成在线观看| 国产精品露脸自拍| 久久久久久久久国产精品| 亚洲色图欧美制服丝袜另类第一页| 岛国av一区二区在线在线观看| 国产精品pans私拍| 久久久久久久久久久免费| 91老司机精品视频| 欧美日韩激情网| www.xxxx精品| 欧美激情三级免费| 高清欧美一区二区三区| 亚洲理论片在线观看| 欧美重口另类videos人妖| 国产日韩欧美视频在线| 久久国产精品电影| 国产做受69高潮| 一区二区三区回区在观看免费视频| 激情av一区二区| 这里只有精品丝袜| 欧美激情欧美狂野欧美精品| 激情亚洲一区二区三区四区| 国产欧美中文字幕| 亚洲a在线观看| 亚洲国产精品久久精品怡红院| 欧美日韩国产一区二区| 成人自拍性视频| 精品久久久久久电影| 国产精品夫妻激情| 国产精品自产拍在线观| 欧美成人性色生活仑片| 欧美精品制服第一页| 91久久久精品| 成人免费福利视频| 韩剧1988在线观看免费完整版| 国内精品中文字幕| 国产精品吊钟奶在线| 97久久精品人搡人人玩| 亚洲欧洲在线免费| 91免费国产视频| 亚洲福利在线播放| 热re91久久精品国99热蜜臀| 国产精品自产拍在线观看中文| 日韩最新中文字幕电影免费看| 亚洲日本成人网| 亚洲色图五月天| 91精品久久久久久久久久久| 国产亚洲成精品久久| 精品欧美aⅴ在线网站| 亚洲精品98久久久久久中文字幕| 欧美日韩亚洲天堂| 国产欧美在线播放|