• <center id="sm46c"></center>
  • <dfn id="sm46c"></dfn>
  • <strike id="sm46c"></strike>
  • <cite id="sm46c"><source id="sm46c"></source></cite>
    • <strike id="sm46c"><source id="sm46c"></source></strike>
      <option id="sm46c"></option>
      国产精品天天看天天狠,女高中生强奷系列在线播放,久久无码免费的a毛片大全,国产日韩综合av在线,亚洲国产中文综合专区在,特殊重囗味sm在线观看无码,中文字幕一区二区三区四区在线,无码任你躁久久久久久老妇蜜桃

      ECMAScript6學(xué)習(xí)筆記

      2019-6-27    seo達(dá)人

      如果您想訂閱本博客內(nèi)容,每天自動(dòng)發(fā)到您的郵箱中, 請(qǐng)點(diǎn)這里

      這周萌芽決定好好學(xué)習(xí)一下ES6,感興趣的小伙伴們來(lái)一起學(xué)習(xí)吧~
      ES6(ES2015)——IE10+、Chrome、FireFox、移動(dòng)端、Node.js

      編譯轉(zhuǎn)換

      1.在線轉(zhuǎn)換(browser.js)
      2.提前編譯

      ES6新特性
      1.變量
      2.函數(shù)
      3.數(shù)組
      4.字符串
      5.面向?qū)ο?br /> 6.promise(串行化異步交互)
      7.generator(把同步拆分為異步)
      8.模塊化(ES6自帶模塊化)

      變量
      var
      1.可以重復(fù)聲明
      2.無(wú)法限制修改
      3.沒有塊級(jí)作用域(沒有語(yǔ)法塊!)

      let 不能重復(fù)聲明(變量,可以修改)
      const 不能重復(fù)聲明(常量,不能修改)

      塊級(jí)作用域,let在外部無(wú)法調(diào)用

      函數(shù)
      箭頭函數(shù) =>

      function show(){
      //這是我們平常的函數(shù)
      }
      let show=()=>{
      //箭頭函數(shù)
      }
      //區(qū)別不大,把function省略掉換成箭頭,主要就是為了方便,可傳參

      1.如果只有一個(gè)參數(shù),()可以省去。

       let show=a=>{
              return a*2
          }

      2.如果只有一個(gè)return,{}可以省略

         let show=a=>a*2;
         let arr = [15,2,37,11,67,4,6]; //排序
        
         arr.sort((n1,n2)=>{
              return n1-n2;
          })
          
          arr.sort((n1,n2)=> n1-n2 );
          console.log(arr)


      函數(shù)的參數(shù)
      1.參數(shù)擴(kuò)展/展開
      2.默認(rèn)參數(shù)

      參數(shù)的擴(kuò)展
      1.收集參數(shù)

       function arrData(a,b,...args) {
              alert(a);
              alert(b);
              alert(args);
          }
          *注意:Rest Parameter必須是最后一個(gè)(除其他語(yǔ)言)
      1

      2.展開數(shù)組

          arrData(...arr);       //等價(jià)于 arrData(1,2,3);
      1
      這仨點(diǎn)兒【…】代表把數(shù)組內(nèi)容掏出來(lái)放這。

      默認(rèn)參數(shù)

      //jQuery中的默認(rèn)參數(shù)
      $('#div1').animate({width:'200px'});
      $('#div1').animate({width:'200px'},1000);

      //ES6默認(rèn)傳參
         function showOne(a,b=10,c=5) {
              console.log(a,b,c)
          }

      解構(gòu)賦值
      1.左右兩邊解構(gòu)必須一樣
      2.右邊必須是個(gè)合法的東西
      3.聲明和賦值不能分開(必須在一句話里完成)

          let  [one,two,three] = [10,20,30];
          let  {one1,two2,three3} = {a:10,b:20,c:30};

      數(shù)組
      map 映射(一個(gè)對(duì)一個(gè)。傳幾個(gè)返回幾個(gè))

      let result = arr.map(function (item) {
          return item*2;
      });//簡(jiǎn)寫一下
      let result = arr.map(item=>item*2 );

      //判斷考試成績(jī)
      let score = [19,18,78,65,100];
      let result = score.map(item=>item>=60?'及格':'不及格');

      reduce 匯總(算個(gè)總數(shù),算個(gè)平均數(shù))

      //tmp:上次求和總和,為兩兩相加,如果之前沒有結(jié)果則為傳進(jìn)來(lái)的數(shù)組的第一個(gè)數(shù)。
      //itme:當(dāng)前的數(shù)。
      //index:執(zhí)行的次數(shù)。

         let result = arr.reduce(function (tmp, item, index) {
             return tmp + item;
          });
          //簡(jiǎn)寫
          arr.reduce((tmp, item, index)=>tmp + item);

      filter 過濾器(篩選掉不需要的)

       let result = arr.filter(item=>{
              if (item%2 == 0){
                  return true;
              } else {
                  return false;
              }
          });
          
       //簡(jiǎn)寫
      let result = arr.filter(item=>item%2 == 0);
             
      //***萌芽在這里提一下!json和之前的item都不是固定的,可以隨便命名。意思都是當(dāng)前的值!

       let arrProce = [
              {title:'男士襯衫',price:75},
              {title:'女士包包',price:5000},
              {title:'男士包包',price:20},
              {title:'女士鞋',price:2500}
          ];
          let result = arrProce.filter(jsom=>json.price >= 2000);
          console.log(result);

      forEach循環(huán)(迭代)

         arr.forEach((item,index)=>{
              alert(index+":"+item)
          })

      字符串
      1.多了倆新方法
      startsWith(); //判斷開頭,返回布爾類型
      endWith(); //判斷結(jié)尾,返回布爾類型

      let str='hello,world!'
      str.startsWith('h')
      str.endWith('!')      //返回true

      2.字符串模板
      字符串連接
      2.1直接把東西塞進(jìn)字符串里面 ${東西}
      2.2可以折行

      <h1>${title}</h1>
      <p>${content}</p>

      ES6的面向?qū)ο?br /> 1.class關(guān)鍵字,構(gòu)造器和類分開啦。
      2.class里面直接加方法。

          class User{
              constructor(name,password){   //構(gòu)造器
                  this.name = name;
                  this.password = password;
              }

              showName(){
                  alert(this.name);
              }
              showPass(){
                 alert(this.password);
              }
          }

          var user = new User('萌芽子','123456');
          user.showName();
          user.showPass();

      繼承

          class VipUser extends User{
              constructor(name,password,age){
              super(name,password);          //super 超類
              this.age = age;
              }
              showAge(){
                  alert(this.age)
              }
          }
          var user = new VipUser('萌芽子','123456','18歲');
          user.showName();
          user.showPass();
          user.showAge();

      不得不說作為一只JAVA汪,這種寫法真得勁!

      面向?qū)ο蟮膽?yīng)用
      React
      1.組件化(class)
      2.JSX(JSXbabelbrowser.js)
      JSX屬于JS的擴(kuò)展版

      class Test extends React.Component{
       constructor(...args){
       super(...args);
       }
      render(){
      return <li>{this.props.str}</li>         //props:屬性
      }
      }

      window.onload = function(){
      let oDiv = document.getElementById('div1');

      ReactDOM.render(
      <ul>
      <Item str="你好"></Item>
      <Item str="世界!"></Item>
      </ul>
      oDiv
      );
      };


      打卡,下次就學(xué)這個(gè)了!===============

      json
      1.JSON對(duì)象

      JSON.stringify() json轉(zhuǎn)字符串

       let json = {a:10, b:20};//JSON.stringify   字符串化
          let str = 'http://www.baidu.com/path/user?data='+JSON.stringify(json);
          str = 'http://www.baidu.com/path/user?data='+encodeURIComponent(JSON.stringify(json));
          alert(str)
      1
      2
      3
      4
      JSON.parse() 字符串轉(zhuǎn)json

          let str = '{"a":12,"b":20,"c":"可樂"}';
          let json = JSON.parse(str);
          console.log(json);

      2.簡(jiǎn)寫
      在新版的ES6當(dāng)中名字一樣的鍵(key)和值(value)可以只寫一個(gè)。

          let a = 12;
          let b = 5;
          let json = {a,b,c:21};

      簡(jiǎn)化了JSON中的方法。

       let json ={
              a:12,
              showJson(){
                  alert(this.a);
              }
          };
          json.showJson();

      json的標(biāo)準(zhǔn)寫法:
      1.只能用雙引號(hào)
      2.所有的名字都必須用引號(hào)包起來(lái)(所有的key都必須是雙引號(hào))

      {a:12,b:5}     × 錯(cuò)誤的寫法
      {"a":"萌萌萌","b":"芽子"}     √ 正確的寫法
      1
      2
      Promise(承諾)
      異步:操作之間沒啥關(guān)系,同時(shí)進(jìn)行多個(gè)操作
      同步:同時(shí)只能做一件事
      優(yōu)缺點(diǎn):
      異步:代碼更復(fù)雜
      同步:代碼簡(jiǎn)單
      Promise——消除異步操作
      *用同步一樣的方式來(lái)書寫異步代碼;

          let p = new Promise(function (resolve,reject) {
              //異步代碼
              //resolve——成功
              //reject——失敗
          })

      -----------------------------------------訪問我們的arr.txt文件,這里用到了jQuery的ajax就不詳細(xì)介紹了。
        let p = new Promise(function (resolve, reject) {
              //異步代碼
              //resolve——成功
              //reject——失敗
              $.ajax({
                  url: 'arr.txt',
                  dataType: 'json',
                  success(arr) {
                      resolve(arr);
                  }, error(err) {
                      reject(err);
                  }
              })
          });
          //結(jié)果
          p.then(function (arr) {
              alert('成功啦' + arr)
          }, function (err) {
              alert('失敗了' + err)
              console.log(err)
          });
      -----------------------------------------------多個(gè)請(qǐng)求地址
        Promise.all([p1,p2]).then(function (arr){
              let [res1,res2] = arr;
              alert('全部成功啦');
              console.log(res1);
              console.log(res2);
          },function (){
              alert('至少有一個(gè)失敗了');
          });
          ----------------------------再簡(jiǎn)化
          function createPromise(url){
          return new Promise(function (resolve, reject) {
                  $.ajax({
                      url,
                      dataType: 'json',
                      success(arr) {
                          resolve(arr);
                      }, error(err) {
                          reject(err);
                      }
                  })
              });
          }
        Promise.all([
              createPromise('arr.txt'),
              createPromise('json.txt')
          ]).then(function (arr){
              let [res1,res2] = arr;
              alert('全部成功啦');
              console.log(res1);
              console.log(res2);
          },function (){
              alert('至少有一個(gè)失敗了');
          });
      ----------------------完美寫法
       Promise.all([
              $.ajax({url:'arr.txt',dataType:'json'}),
              $.ajax({url:'json.txt',dataType:'json'})
          ]).then(function (results) {
              let [arr,json] = results;
              alert("成功了");
              console.log(arr,json)
          },function () {
              alert("失敗了")
          })

      我們有了promise之后的異步:

       Promise.all([ $.ajax(),$.ajax() ]).then( results=>{
         //對(duì)了
          },err=> {
         //錯(cuò)了
          })

      Promise.all (必須全部成功)
      Promise.race(同事讀多個(gè)數(shù)據(jù),即使失敗也沒關(guān)系)

      generator(生成器)
      普通函數(shù) - 一路到底執(zhí)行不可中斷
      generator函數(shù) - 可中斷

       function * show() {
              alert('a');
              yield;//暫時(shí)放棄執(zhí)行
              alert('b');
          }
          let genObj = show();
          genObj.next();
          genObj.next();

      yield
      yield傳參

        function * show(num1,num2) {
              alert(`${num1},${num2}`);//es6
              alert('a');
             let a = yield;//暫時(shí)放棄執(zhí)行
              console.log(a);
              alert('b');
          }
          let genObj = show(99,88);
          genObj.next(12);//第一個(gè)next無(wú)法給yield傳參的,廢的
          genObj.next(5);

      yield返回

        function *show() {
              alert('a');
              yield 12;
              alert('b');
              return 55;
          }

          let gen = show();
          let res1 = gen.next();
          console.log(res1);      //{value: 12, done: false}
          let res2 = gen.next();
          console.log(res2);//{value: undefined, done: true}  加了return  {value: 55, done: true}



      還沒做的菜叫函數(shù)參數(shù),過程是yield之前函數(shù)里面的東西,干凈的菜,切好的菜是中間過程也就是yield,最終我們將它返回出去!不得不說這圖很生動(dòng)。
      異步操作
      1.回調(diào)

      $.ajax({
          url:'url',
          dataType:'json',
          success(data){
              $.ajax({
                  url:'xxx',
                  dataType: 'json',
                  success(data) {
                      //完事兒了
                  },error(err) {
                      alert('錯(cuò)了')
                  }
              })
          },error(){
              alert('失敗')
          }
      })

      2.Promise

      Promise.all([
              $.ajax({url:xxx,dataType:'json'}),
              $.ajax({url:xxx,dataType:'json'}),
              $.ajax({url:xxx,dataType:'json'})
          ]).then(results=>{
              //完事兒
          },err=>{
              //錯(cuò)誤的
          })

      3.generator

      runner(function  *(){
      let data1 = yield $.ajax({ulr:xxx,dataType:'json'});
      let data2 = yield $.ajax({ulr:xxx,dataType:'json'});
      let data3 = yield $.ajax({ulr:xxx,dataType:'json'});
      })
      1
      2
      3
      4
      5
      generator(不能用=>函數(shù))
      邏輯判斷下非常好用。
      Promise:一次讀一堆。
      generator:邏輯性。

      runner(function *(){
      let userData = yield $.ajax({url:'getUserData',dataType:'json'});
      if(userData.type == 'VIP'){
      let items = yield $.ajax({url:'getVIPItems',dataTyoe:'jsom'});
      }else{
      let items = yield $.ajax({url:'getItems',dataTyoe:'jsom'});
            }
      //生成...
      }
      })

      總結(jié)
      1.變量:
      var:能重復(fù)聲明、函數(shù)級(jí)
      let: 嚴(yán)格的,不能重復(fù)聲明,塊級(jí),變量
      const:嚴(yán)格的,不能重復(fù)聲明,塊級(jí),常量

      2.箭頭函數(shù)
      2.1方便
      i.如果只有一個(gè)參數(shù),()可以省
      ii.如果只有一個(gè)return,{}可以省
      2.2修正了this
      this相對(duì)正常點(diǎn)

      3.參數(shù)擴(kuò)展
      …能收集
      …能擴(kuò)展
      默認(rèn)參數(shù)

      4.數(shù)組方法
      map 映射
      reduce 匯總
      filter 過濾
      forEach 循環(huán)

      5.字符串
      starsWith/endWith
      字符串模板:${a}xxx{b}

      6.Promise
      封裝異步操作
      Promise.all([]);

      7.generator
      function *show(){
      yield
      }

      8.JSON
      JSON.stringify({ a :12,b :5}) => {“a”:12,“b”:5}
      JSON.parse(’{“a”:12,“b”:5}’) =>{a:12,b:5}//字符串

      9.解構(gòu)賦值
      let [a,b,c] = [12,5,8];
      左右結(jié)構(gòu)一樣,右邊是個(gè)合法的東西,連生命帶賦值一次完成。

      10.面向?qū)ο?br /> class Test(){
      constructor(xxx){
      this = xxx
      }
      方法1(){
      }
      方法2(){
      }
      }
      繼承
      class Test2 extends Test(){
      constructor(){
      super();
      }
      }

      談?wù)凟S7和ES8
      1.數(shù)組includes
      數(shù)組是否包含某個(gè)東西

      2.數(shù)組 keys/values/entries
      for…in(循環(huán)數(shù)組)
      對(duì)于數(shù)組來(lái)講循環(huán)的是下標(biāo)
      對(duì)于json循環(huán)的是key

      for…of(循環(huán)迭代器)
      對(duì)于數(shù)組循環(huán)的是值
      不能用于JSON,json并不是迭代器

      keys = >所有的key拿出來(lái) 0,1,2,3…
      values =>所有的values拿出來(lái) 23,5,8,1…
      entries =>所有的鍵值對(duì)拿出來(lái) {key:0,value:a}

      let arr = [12,5,8,99];
      for(let [key,value] of arr.entries()){
      alert(`${key} = ${value}`);

      預(yù)覽版,目前極大多數(shù)瀏覽器都不支持,以后可能會(huì)支持,了解一下就好。
      藍(lán)藍(lán)設(shè)計(jì)www.li-bodun.cn )是一家專注而深入的界面設(shè)計(jì)公司,為期望卓越的國(guó)內(nèi)外企業(yè)提供卓越的UI界面設(shè)計(jì)、BS界面設(shè)計(jì) 、 cs界面設(shè)計(jì) 、 ipad界面設(shè)計(jì) 、 包裝設(shè)計(jì) 、 圖標(biāo)定制 、 用戶體驗(yàn) 、交互設(shè)計(jì)、網(wǎng)站建設(shè) 平面設(shè)計(jì)服務(wù)

      日歷

      鏈接

      個(gè)人資料

      存檔

      主站蜘蛛池模板: 蜜桃亚洲一区二区三区四| 精品久久国产| 国产精品V欧美精品V日韩精品| 手机看片1024久久精品你懂的| 无码人妻aⅴ一区二区三区有奶水| 国产成人MV视频在线观看| 国产婷婷丁香五月缴情成人网| 欧美 亚洲 国产 另类| 无码不卡的中文字幕视频| 国内精品免费久久久久电影院97 | 免费午夜无码片在线观看影院 | 亚洲区综合区小说区激情区| 久久免费视亚洲无码视频| 中文字幕免费无码专区| 61精品人妻一区二区三区| 亚洲精品无码日韩国产不卡av| 无码AV中文字幕久久专区| 人妻中文字幕亚洲精品| 久久精品国产6699国产精 | 婷婷综合色| 亚洲综合五月天欧美| 亚洲精品一区二区在线播| 国产成人亚洲欧美激情| 精品人妻无码区二区三区| 日韩在线网址| 福利一区二区在线播放| 国内精品久久久久久久小说| 国产精品黄大片在线播放| 不卡色老大久久综合网| 麻豆久久婷婷国产| 亚洲2019av无码网站在线| 99re免费视频| 久久精品人人做人人爽电影蜜月| 国产成人精品免费久久久久| 无码AV中文字幕久久专区| 亚洲美女高清aⅴ视频免费| 久久精品青草社区| 欧美黑人又粗又大xxx| 国产精品一区二区三区污| 国产福利99| 在线观看日本亚洲一区|