成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

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

CODING / 1104人閱讀

摘要:筆記和和是塊作用域的,是聲明常量用的。一個(gè)對(duì)象如果要有可被循環(huán)調(diào)用的接口,就必須在的屬性上部署遍歷器生成方法原型鏈上的對(duì)象具有該方法也可。這種方式會(huì)訪問(wèn)注冊(cè)表,其中存儲(chǔ)了已經(jīng)存在的一系列。這種方式與通過(guò)定義的獨(dú)立不同,注冊(cè)表中的是共享的。

ECMAScript6 筆記 let 和 const

let和const是塊作用域的 ,const是聲明常量用的。

{let a = 10;}
a // ReferenceError: a is not defined.

let和const不存在變量提升

console.log(foo); // ReferenceError
let foo = 2;
var tmp = 123;
if (true) {
  tmp = "abc"; // ReferenceError
  let tmp;
} 
function bar(x = y, y = 2) {
  return [x, y];
}
bar(); // 報(bào)錯(cuò)

const 不可變的只是引用的地址

const foo = {};
foo.prop = 123;
foo.prop// 123
foo = {} // TypeError: "foo" is read-only不起作用

如果真的想將對(duì)象凍結(jié),應(yīng)該使用Object.freeze方法。

const foo = Object.freeze({});
foo.prop = 123; // 不起作用
class
class Point {
    constructor(x, y) {
        this.x = x;
        this.y = y;
    }
    static classMethod() {
        console.log("fathor jt:hello");
    }
}
class ColorPoint extends Point { //mix(Cons1,Cons2)
    constructor(x, y, color) {
        super(x, y);
        this.color = color; // 正確
    }
    //原型方法
    ptMethod(){
        console.log("pt:hello");
    }
    static classMethod() {
        //靜態(tài)方法也是可以從super對(duì)象上調(diào)用
        super.classMethod();
        console.log("jt:hello");
    }
    get prop() {
        return "getter";
    }
    set prop(value) {
        console.log("setter: "+value);
    }
}
Iterator和for...of循環(huán)

Iterator的作用有三個(gè):一是為各種數(shù)據(jù)結(jié)構(gòu),提供一個(gè)統(tǒng)一的、簡(jiǎn)便的訪問(wèn)接口;二是使得數(shù)據(jù)結(jié)構(gòu)的成員能夠按某種次序排列;三是ES6創(chuàng)造了一種新的遍歷命令for...of循環(huán),Iterator接口主要供for...of消費(fèi)。

let arr = ["a", "b"];
let iter = arr[Symbol.iterator]();
iter.next() //{ value: "a", done: false }
iter.next() //{ value: "b", done: false }
iter.next() //{ value: undefined, done: true }

上面代碼中,變量arr是一個(gè)數(shù)組,原生就具有遍歷器接口,部署在arr的Symbol.iterator屬性上面。所以,調(diào)用這個(gè)屬性,就得到遍歷器對(duì)象。

一個(gè)對(duì)象如果要有可被for...of循環(huán)調(diào)用的Iterator接口,就必須在Symbol.iterator的屬性上部署遍歷器生成方法(原型鏈上的對(duì)象具有該方法也可)。

class RangeIterator {
  constructor(start, stop) {
    this.value = start;
    this.stop = stop;
  }
  [Symbol.iterator]() { return this; }
  next() {
    var value = this.value;
    if (value < this.stop) {
      this.value++;
      return {done: false, value: value};
    } else {
      return {done: true, value: undefined};
    }
  }
}
for (var value of new RangeIterator(0, 3)) {
  console.log(value);
}
Symbol

ES6引入了一種新的原始數(shù)據(jù)類型Symbol,表示獨(dú)一無(wú)二的值。它是JavaScript語(yǔ)言的第七種數(shù)據(jù)類型,前六種是:Undefined、Null、布爾值(Boolean)、字符串(String)、數(shù)值(Number)、對(duì)象(Object)。

symbol鍵的設(shè)計(jì)初衷是避免初衷,因此JavaScript中最常見(jiàn)的對(duì)象檢查的特性會(huì)忽略symbol鍵。例如,for-in循環(huán)只會(huì)遍歷對(duì)象的字符串鍵,symbol鍵直接跳過(guò),Object.keys(obj)和Object.getOwnPropertyNames(obj)也是一樣。但是symbols也不完全是私有的:用新的API Object.getOwnPropertySymbols(obj)就可以列出對(duì)象的symbol鍵。另一個(gè)新的API,Reflect.ownKeys(obj),會(huì)同時(shí)返回字符串鍵和symbol鍵。(我們將在隨后的文章中講解Reflect(反射) API)

獲取symbol的三種方法

調(diào)用Symbol()。這種方式每次調(diào)用都會(huì)返回一個(gè)新的唯一symbol。

調(diào)用Symbol.for(string)。這種方式會(huì)訪問(wèn)symbol注冊(cè)表,其中存儲(chǔ)了已經(jīng)存在的一系列symbol。這種方式與通過(guò)Symbol()定義的獨(dú)立symbol不同,symbol注冊(cè)表中的symbol是共享的。如果你連續(xù)三十次調(diào)用Symbol.for("cat"),每次都會(huì)返回相同的symbol。注冊(cè)表非常有用,在多個(gè)web頁(yè)面或同一個(gè)web頁(yè)面的多個(gè)模塊中經(jīng)常需要共享一個(gè)symbol。

使用標(biāo)準(zhǔn)定義的symbol,例如:Symbol.iterator

var s1 = Symbol();
var s2 = Symbol();
s1 === s2 // false
var mySymbol = Symbol();
var a = {
  [mySymbol]: "Hello!"
};
promie 生成器 Generators 集合 箭頭函數(shù)

箭頭函數(shù)提供了更簡(jiǎn)潔的語(yǔ)法,并且箭頭函數(shù)中 this 對(duì)象的指向是不變的,this 對(duì)象綁定定義時(shí)所在的對(duì)象

// bad
"use strict";
var fn = function fn(v) {
  return console.log(v);
};

// good
var fn= (v=>console.log(v));
Module Babel下的ES6兼容性與規(guī)范

http://imweb.io/topic/561f9352883ae3ed25e400f5?utm_source=tuicool&utm_medium=referral

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/86190.html

相關(guān)文章

  • Vue.js新手入門(mén)指南[轉(zhuǎn)載]

    摘要:就是一個(gè)用于搭建類似于網(wǎng)頁(yè)版知乎這種表單項(xiàng)繁多,且內(nèi)容需要根據(jù)用戶的操作進(jìn)行修改的網(wǎng)頁(yè)版應(yīng)用。單頁(yè)應(yīng)用程序顧名思義,單頁(yè)應(yīng)用一般指的就是一個(gè)頁(yè)面就是應(yīng)用,當(dāng)然也可以是一個(gè)子應(yīng)用,比如說(shuō)知乎的一個(gè)頁(yè)面就可以視為一個(gè)子應(yīng)用。 最近在逛各大網(wǎng)站,論壇,以及像SegmentFault等編程問(wèn)答社區(qū),發(fā)現(xiàn)Vue.js異?;鸨?,重復(fù)性的提問(wèn)和內(nèi)容也很多,樓主自己也趁著這個(gè)大前端的熱潮,著手學(xué)習(xí)了一...

    MartinHan 評(píng)論0 收藏0
  • 前端補(bǔ)集 - 收藏集 - 掘金

    摘要:原文地址一個(gè)非常適合入門(mén)學(xué)習(xí)的博客項(xiàng)目前端掘金一個(gè)非常適合入門(mén)學(xué)習(xí)的項(xiàng)目,代碼清晰結(jié)構(gòu)合理新聞前端掘金介紹一個(gè)由編寫(xiě)的新聞。深入淺出讀書(shū)筆記知乎專欄前端專欄前端掘金去年的一篇老文章,恰好今天專欄開(kāi)通,遷移過(guò)來(lái)。 破解前端面試(80% 應(yīng)聘者不及格系列):從閉包說(shuō)起 - 掘金修訂說(shuō)明:發(fā)布《80% 應(yīng)聘者都不及格的 JS 面試題》之后,全網(wǎng)閱讀量超過(guò) 6W,在知乎、掘金、cnodejs ...

    YorkChen 評(píng)論0 收藏0
  • 前端補(bǔ)集 - 收藏集 - 掘金

    摘要:原文地址一個(gè)非常適合入門(mén)學(xué)習(xí)的博客項(xiàng)目前端掘金一個(gè)非常適合入門(mén)學(xué)習(xí)的項(xiàng)目,代碼清晰結(jié)構(gòu)合理新聞前端掘金介紹一個(gè)由編寫(xiě)的新聞。深入淺出讀書(shū)筆記知乎專欄前端專欄前端掘金去年的一篇老文章,恰好今天專欄開(kāi)通,遷移過(guò)來(lái)。 破解前端面試(80% 應(yīng)聘者不及格系列):從閉包說(shuō)起 - 掘金修訂說(shuō)明:發(fā)布《80% 應(yīng)聘者都不及格的 JS 面試題》之后,全網(wǎng)閱讀量超過(guò) 6W,在知乎、掘金、cnodejs ...

    AbnerMing 評(píng)論0 收藏0
  • ES6學(xué)習(xí)摘要(01)(新人學(xué)習(xí)

    摘要:入門(mén)一前言由于最近本人在學(xué)習(xí),做一些筆記能夠更好的熟悉,就趁此機(jī)會(huì)來(lái)寫(xiě)一篇關(guān)于的新人學(xué)習(xí)摘要吧。的作用域與命令相同只在聲明所在的塊級(jí)作用域內(nèi)有效。塊級(jí)作用域新增方式和實(shí)際上為新增了塊級(jí)作用域。同時(shí),函數(shù)聲明還會(huì)提升到所在的塊級(jí)作用域的頭部。 ECMAScript6/ES6 入門(mén) 一、前言 由于最近本人在學(xué)習(xí)ES6,做一些筆記能夠更好的熟悉,就趁此機(jī)會(huì)來(lái)寫(xiě)一篇關(guān)于ES6的新人學(xué)習(xí)摘要吧。...

    dmlllll 評(píng)論0 收藏0
  • 常用ECMAScript6語(yǔ)法歸納

    摘要:對(duì)象的解構(gòu)賦值函數(shù)執(zhí)行后,返回的是一個(gè)對(duì)象。分別取出對(duì)象中屬性為和的值,根據(jù)解構(gòu)賦值的規(guī)則,在左側(cè)聲明變量,放在大括號(hào)中,變量名要和屬性名保持一致。箭頭函數(shù)在中,箭頭函數(shù)就是函數(shù)的一種簡(jiǎn)寫(xiě)形式允許使用箭頭定義函數(shù)。 原文博客地址,歡迎學(xué)習(xí)交流:點(diǎn)擊預(yù)覽 聲明變量 可以使用let、const關(guān)鍵字聲明變量,而不推薦使用var聲明變量 var聲明變量的問(wèn)題: 可以多次重復(fù)聲明同一個(gè)變量...

    raledong 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<