亚洲国产精品人久久,亚洲va国产日韩欧美精品色婷婷,久久久久88色偷偷,免费人成黄页在线观看国际

17站長網

17站長網 首頁 編程教程ES6教程

ES6教程

ES6教程

ECMAScript 6(簡稱ES6)是于2015年6月正式發布的JavaScript語言的標準,正式名為ECMAScript 2015(ES2015)。它的目標是使得JavaScript語鯠臫頭言可以用筿來編寫復雜的大型應用程序,成為企業級開發語言。

另外,一些情況下ES6也泛指ES2015及之后的新增特性,雖然之后的版本應當稱為ES7、ES8等。

ES6發展

2000年,ECMAScript 4.0開始醞釀。這個版本最后沒有通過,但是它的大部分內容被ECMAScript6繼承了。因此,ECMAScript6制定的起點其實是2000年。

2007年10月,ECMAScript 4.0草案發布,本來預計2008年8月發布正式版本。但是,各方對于是否通過這個標準,發生了嚴重分歧。以Yahoo、Microsoft、Google為首的大公司,反對JavaScript的大幅升級,主張小幅改動;以JavaScript創造者Brendan Eich為首的Mozilla公司,則堅持當前的草案。

2008年7月,由于對于下一個版本應該包括哪些功能,各方分歧太大,爭論過于激烈,ECMA開會決定,中止ECMAScript 4.0的開發,將其中涉及現有功能改善的一小部分,發布為ECMAScript 3.1,而將其他激進的設想擴大范圍,放入以后的版本,由于會議的氣氛,該版本的項目代號起名為Harmony(和諧)。會后不久,ECMAScript 3.1就改名為ECMAScript 5。

2009年12月,ECMAScript 5.0正式發布。Harmony項目則一分為二,一些較為可行的設想定名為 JavaScript.next繼續開發,后來演變成ECMAScript 6;一些不是很成熟的設想,則被視為JavaScript.next.next,在更遠的將來再考慮推出。

2011年,ECMAScript 5.1發布后開始6.0版的制定。

2013年3月,ECMAScript 6草案凍結,不再添加新功能。新的功能設想將被放到ECMAScript 7。

2013年12月,ECMAScript 6草案發布。然后是12個月的討論期,聽取各方反饋。由于這個版本引入的語法功能太多,而且制定過程當中,還有很多組織和個人不斷提交新功能。標準委員會最終決定,標準在每年的6月份正式發布一次,作為當年的正式版本。接下來的時間,就在這個版本的基礎上做改動,直到下一年的6月份,草案就自然變成了新一年的版本。

2015年6月,ECMAScript 6(ES6)正式通過,成為國際標準,正式名稱是“ECMAScript 2015”(簡稱ES2015)。

2016年6月,小幅修訂的“ECMAScript 2016”(簡稱ES2016或ES7)標準發布,相當于ES6.1版,因為兩者的差異非常小(只新增了數組實例的includes方法和指數運算符),基本上是同一個標準。

ES6新增功能

聲明命令

1. let命令

ES6新增了let命令,用來聲明變量。它的用法類似于var,但是所聲明的變量,只在let命令所在的代碼塊內有效。下面代碼在代碼塊之中,分別用let和var聲明了兩個變量。然后在代碼塊之外調用這兩個變量,結果let聲明的變量報錯,var聲明的變量返回了正確的值。這表明,let聲明的變量只在它所在的代碼塊有效。

for循環的計數器,就很合適使用let命令,計數器i只在for循環體內有效,在循環體外引用就會報錯:

下面的代碼如果使用var,最后輸出的是10。因為變量i是var命令聲明的,在全局范圍內都有效,每一次循環,變量i的值都會發生改變,而循環內被賦給數組a的函數內部的console.log(i),里面的i指向的就是全局的i。也就是說,所有數組a的成員里面的i,指向的都是同一個i,導致運行時輸出的是最后一輪的i的值,也就是10。

如鯠臫果使頭筿用let,聲明的變量僅在塊級作用域內有效,最后輸出的是6。因為變量i是let聲明的,當前的i只在本輪循環有效,所以每一次循環的i其實都是一個新的變量,所以最后輸出的是6。由于JavaScript引擎內部會記住上一輪循環的值,初始化本輪的變量i時,就在上一輪循環的基礎上進行計算:

let不允許在相同作用域內,重復聲明同一個變量,不能在函數內部相同模塊范圍重新聲明參數。

另外,for循環還有一個特別之處,就是設置循環變量的那部分是一個單獨的父作用域,而循環體內部是子作用域:

var命令會發生“變量提升”現象,即變量可以在聲明之前使用,值為undefined。為了糾正這種現象,let命令改變了語法行為,它所聲明的變量一定要在聲明后使用,否則報錯。這在語法上,稱為“暫時性死區”(temporal dead zone,簡稱TDZ)。

let實際上為JavaScript新增了塊級作用域,在{}被包圍的范圍外,不受內層的let變量影響(但會受var的“變量提升”影響):

2. const命令

const聲明一個只讀的常量。一旦聲明,常量的值就不能改變,且聲明時必須立即初始化,不能留到以后賦值。const的作用域與let命令相同:只在聲明所在的塊級作用域內有效。

const實際上保證的,并不是變量的值不得改動,而是變量指向的那個內存地址不得改動。對于簡單類型的數據(數值、字符串、布爾值),值就保存在變量指向的那個內存地址,因此等同于常量。但對于復合類型的數據(主要是對象和數組),變量指向的內存地址,保存的只是一個指針,const只能保證這個指針是固定的,至于它指向的數據結構是不是可變的,就完全不能控制了。因此,將一個對象聲明為常量必須非常小心。

如果真的想將對象或對象屬性凍結,應該使用Object.freeze方法。

3.Class命令

ES6 提供了更接近傳統語言的寫法,引入了Class(類)這個概念(類的數據類型就是函數,類本身就指向構造函數),作為對象的模板。通過class關鍵字,可以定義類。class可以看作只是一個語法糖,它的絕大部分功能,ES5都可以做到,新的class寫法只是讓對象原型的寫法更加清晰、更像面向對象編程的語法而已:

構造函數的prototype屬性,在ES6的類上面繼續存在。事實上,類的所有方法都定義在類的prototype屬性上面。但類的內部所有定義的方法,都是不可枚舉的(non-enumerable):

類的屬性名,可以采用表達式:

與函數一樣,類也可以使用表達式的形式定義。下面代碼使用表達式定義了一個類。需要注意的是,這個類的名字是MyClass而不是Me,Me只在 Class 的內部代碼可用,指代當前類:

類相當于實例的原型,所有在類中定義的方法,都會被實例繼承。如果在一個方法前,加上static關鍵字,就表示該方法不會被實例繼承,而是直接通過類來調用,這就稱為“靜態方法”。

如果靜態方法包含this關鍵字,這個this指的是類,而不是實例。靜態方法可以與非靜態方法重名,父類的靜態方法,可以被子類繼承:

4.import命令

import雖然屬于聲明命令,但它是和export命令配合使用的。export命令用于規定模塊的對外接口,import命令用于輸入其他模塊提供的功能。

一個模塊就是一個獨立的文件。該文件內部的所有變量,外部無法獲取。如果外部能夠讀取模塊內部的某個變量、函數或類,就必須使用export關鍵字輸出。export輸出的變量就是本來的名字,但是可以使用as關鍵字重命名:

export語句輸出的接口,與其對應的值是動態綁定關系,即通過該接口,可以取到模塊內部實時的值。這一點與CommonJS規范完全不同,CommonJS模塊輸出的是值的緩存。export命令可以出現在模塊的任何位置,只要處于模塊頂層就可以。如果處于塊級作用域內,就會報錯:

使用export命令定義了模塊的對外接口以后,其他JS文件就可以通過import命令加載這個模塊,變量名必需與被導入模塊(profile.js)對外接口的名稱相同。import命令可以使用as關鍵字,將輸入的變量重命名。除了指定加載某個輸出值,還可以使用整體加載,即用*指定一個對象,所有輸出值都加載在這個對象上面。

import命令輸入的變量都是只讀的,因為它的本質是輸入接口。也就是說,不允許在加載模塊的腳本里面,改寫接口。但是,如果是一個對象,改寫對象的屬性是允許的。并且由于import是靜態執行,所以不能使用表達式和變量,這些只有在運行時才能得到結果的語法結構。

注意,import命令具有提升效果,會提升到整個模塊的頭部,首先執行。import可以不導入模塊中的任何內容,只運行模塊中的全局代碼。如果多次執行同一模塊的import語句,那么只會執行一次其全局代碼,但變量均會正常引入(相當于合并處理)。

除了用大括號引入變量,import還可以直接自定義引入默認變量:

解構賦值

ES6允許按照一定模式,從數組和對象中提取值,對變量進行賦值,這被稱為解構(Destructuring)。本質上,這種寫法屬于“模式匹配”,只要等號兩邊的模式相同,左邊的變量就會被賦予對應的值。

解構賦值允許指定默認值,只有當一個數組成員嚴格等于undefined,默認值才會生效:

解構不僅可以用于數組,還可以用于對象。對象的解構與數組有一個重要的不同。數組的元素是按次序排列的,變量的取值由它的位置決定;而對象的屬性沒有次序,變量必須與屬性同名,才能取到正確的值。

返回頂部
亚洲国产精品人久久,亚洲va国产日韩欧美精品色婷婷,久久久久88色偷偷,免费人成黄页在线观看国际
欧美一区二区三区免费| 日韩美一区二区三区| 欧美日韩一区二区三区免费看| 亚洲成国产人片在线观看| 欧美日本国产视频| 不卡av在线免费观看| 国产精品丝袜在线| 欧美一区二区大片| 国产亚洲自拍一区| 樱花草国产18久久久久| 欧美羞羞免费网站| 亚洲成a人在线观看| 99精品在线观看视频| 不卡视频在线看| 国产麻豆91精品| 国产乱色国产精品免费视频| 高清不卡在线观看| 色婷婷av一区二区三区软件| 经典三级视频一区| 欧美国产日韩在线观看| 秋霞午夜鲁丝一区二区老狼| 成人在线视频一区二区| 欧美日韩国产中文| 青青草伊人久久| 欧美xxx久久| 韩国av一区二区三区在线观看| 日日摸夜夜添夜夜添亚洲女人| 综合av第一页| 国产精品视频免费| 日韩一区二区在线看| 国产精品福利一区二区| 亚洲123区在线观看| 91在线观看免费视频| 亚洲综合色噜噜狠狠| 911精品产国品一二三产区| 国内精品视频666| 国产日韩欧美不卡在线| 在线一区二区三区四区| 高潮精品一区videoshd| 麻豆一区二区三| 亚洲视频免费看| 欧美一区二区三区四区久久| 色偷偷久久一区二区三区| 美女久久久精品| 美女脱光内衣内裤视频久久影院| 丝袜脚交一区二区| 国产麻豆成人传媒免费观看| 成人av网站在线观看| 国产精品少妇自拍| 精品一区二区三区香蕉蜜桃 | 亚洲欧美自拍偷拍色图| 午夜精品福利一区二区三区av| 中文字幕制服丝袜成人av| 国产在线麻豆精品观看| 首页亚洲欧美制服丝腿| 在线观看日产精品| 欧美大片免费久久精品三p| 国产成人一级电影| 99精品欧美一区二区蜜桃免费| 91视视频在线观看入口直接观看www | 中文字幕在线播放不卡一区| 成人美女视频在线观看18| 日韩久久久精品| 日韩黄色免费网站| 一区二区三区丝袜| 欧美日韩亚洲综合在线 | 日韩一区二区三区视频在线观看| 91精品欧美一区二区三区综合在 | 高清国产午夜精品久久久久久| 国产精品女同互慰在线看| 中文字幕免费不卡| 亚洲va天堂va国产va久| 亚洲欧洲av在线| 亚洲在线视频网站| 99精品欧美一区| 久久精品视频免费| 欧美激情中文字幕| 一区二区三区.www| 亚洲一区二区三区中文字幕 | 色www精品视频在线观看| 欧美亚洲尤物久久| 99re亚洲国产精品| 国产精品麻豆久久久| 91在线云播放| 五月天激情综合网| 久久嫩草精品久久久精品| 欧日韩精品视频| 成人自拍视频在线观看| 不卡的av电影| 欧美岛国在线观看| 成人午夜精品在线| 日韩女优视频免费观看| 成人一区二区在线观看| 日韩一区二区电影| 欧美视频第二页| 色天天综合色天天久久| 精品亚洲国内自在自线福利| 国产成人高清视频| 亚洲色欲色欲www| 欧美日韩一区二区在线观看| 国产精品久久毛片av大全日韩| 免费黄网站欧美| 日韩高清在线电影| 精品一区二区三区在线播放视频| 91久久精品网| 日韩精品中文字幕一区二区三区| 国产精品系列在线播放| 亚洲激情自拍偷拍| 亚洲天堂免费在线观看视频| 视频一区视频二区在线观看| 亚洲精品一线二线三线无人区| 一区二区三区四区视频精品免费| 亚洲欧洲色图综合| 亚洲精品成人少妇| 成人精品在线视频观看| 91在线你懂得| 欧美日韩三级视频| 秋霞电影一区二区| 色综合天天综合色综合av| 欧美一区二区视频在线观看2020| 日韩一级二级三级精品视频| 国产精品天干天干在线综合| 94-欧美-setu| 免费的成人av| 日本成人中文字幕在线视频| 91福利资源站| 国模娜娜一区二区三区| 午夜视频在线观看一区| 欧美色区777第一页| 在线观看视频一区| 国产成人午夜精品5599| 日韩黄色免费网站| 亚洲曰韩产成在线| 免费在线视频一区| 欧美日韩一区二区电影| 国产日韩视频一区二区三区| 无吗不卡中文字幕| 欧美日韩国产综合草草| 欧美剧情片在线观看| 69久久夜色精品国产69蝌蚪网| 国产真实乱偷精品视频免| 国产人妖乱国产精品人妖| 欧美怡红院视频| 亚洲午夜国产一区99re久久| 成人午夜免费视频| 国产美女精品一区二区三区| 综合久久一区二区三区| 国产欧美一区二区精品性色| 91首页免费视频| 欧美日韩国产一二三| 精品99一区二区三区| 免费在线观看视频一区| 午夜精品久久久久久| 日韩激情视频网站| 欧美三级电影网站| 日韩视频123| 日韩精品中文字幕一区| 在线成人高清不卡| 69成人精品免费视频| 欧美日韩免费一区二区三区视频| 日日摸夜夜添夜夜添精品视频| 日韩精品一区二| 成人深夜福利app| eeuss影院一区二区三区| 精品免费视频一区二区| 午夜日韩在线观看| 亚洲午夜精品在线| 亚洲国产日日夜夜| 成人妖精视频yjsp地址| 日韩一区二区免费高清| 一二三四社区欧美黄| 一本一道久久a久久精品综合蜜臀 一本一道综合狠狠老 | 在线观看免费视频综合| 一区二区三区四区蜜桃 | 欧美亚洲日本国产| 韩国v欧美v亚洲v日本v| 国产丝袜欧美中文另类| 69av一区二区三区| 欧美日韩高清在线播放| 亚洲桃色在线一区| 亚洲成人免费电影| 国产精品66部| 亚洲精品乱码久久久久久黑人| 99免费精品在线观看| 国产日韩欧美麻豆| 717成人午夜免费福利电影| 久久精品国产亚洲高清剧情介绍| 欧美日韩精品一区二区在线播放| 香蕉av福利精品导航| 国产精品福利一区| 中文子幕无线码一区tr| 日韩免费一区二区| 国产精品美女久久久久久久网站| 蜜臀av性久久久久蜜臀aⅴ流畅| 狠狠色丁香久久婷婷综合_中| 亚洲免费观看高清在线观看| 伊人色综合久久天天| 天堂久久久久va久久久久| 色综合一区二区| 亚洲天堂免费在线观看视频|