摘要:前三個(gè)是為了解決變量聲明定義的問題,而最后一個(gè)則影響最大。下文只介紹前三個(gè)特性。這是因?yàn)榈牡牟恢С謮K級(jí)作用域,變量?jī)H僅被限制到函數(shù)作用域內(nèi)。
原文: http://pij.robinqu.me/JavaScript_Core/ECMAScript/es6/es6_syntax_features.html
源代碼: https://github.com/RobinQu/Programing-In-JavaScript/blob/master/chapters/JavaScript_Core/ECMAScript/es6/es6_syntax_features.md
本文需要補(bǔ)充更多例子
本文存在批注,但該網(wǎng)站的Markdown編輯器不支持,所以無法正常展示,請(qǐng)到原文參考。
ES6語(yǔ)法特性ES6包含了很多萬眾期待的特性支持:
arrow functions
const
let
default function params
rest parameters
call(...)
array(...)
class
computed properties
modules
for...of
Array comprehensions
Generator comprehensions
Iterators
yield
Template Strings
block-level declaration
destructing
promoise
里面眾多的特性都是讓Javascript看起來更規(guī)范的好東西,但是大部分都沒有被廣泛支持。我們僅介紹其中已經(jīng)至少被一種瀏覽器和node --harmony下支持的。
在寫這篇文章的時(shí)候,有如下特性是較為廣泛支持的:
let1
const2
Block-delvel declaration
for-of
yield
對(duì),就這么多了。前三個(gè)是為了解決變量聲明、定義的問題,而最后一個(gè)則影響最大。會(huì)在多帶帶篇幅中介紹。下文只介紹前三個(gè)特性。
let和block-level declarationvar is scoped to the nearest function block (or global if outside a function block)
let is scoped to the nearest enclosing block (or global if outside any block),
很多文獻(xiàn)、書籍都建議將for循環(huán)的起始變量i、len等放置到函數(shù)作用于的頂部聲明,以避免后續(xù)變量持續(xù)存在所造成的迷惑。
function() { for(var i=0,len=5;i5,5 }
這是因?yàn)镋S5的Javascript的不支持塊級(jí)作用域,變量?jī)H僅被限制到函數(shù)作用域內(nèi)。
注意在node中,你需要同時(shí)加入--harmony和--use-strict來啟動(dòng),才會(huì)支持let。否則會(huì)報(bào)錯(cuò): SyntaxError: Illegal let declaration outside extended mode。
在ES6內(nèi),可以通過let來定義塊級(jí)作用域的變量:
function() { for(let i=0,len=5;i最后一個(gè),函數(shù)定義的作用域問題:
function f() { console.log("I am outside!"); } (function () { if(false) { // What should happen with this redeclaration? function f() { console.log("I am inside!"); } } f(); }());如上代碼,在ES5時(shí)代,每個(gè)瀏覽器都會(huì)得出不同的結(jié)果。但是ES6中,函數(shù)定義只在塊級(jí)作用域內(nèi)有效,結(jié)果很明確。
const關(guān)鍵字const關(guān)鍵字定義一個(gè)塊級(jí)作用域的常量變量。
const a = "You shall remain constant!"; // SyntaxError: Assignment to constant variable a = "I wanna be free!";yieldyield后面有一連串有關(guān)Generator和Iterator的內(nèi)容,會(huì)在另外一片文章內(nèi)詳細(xì)介紹: Javascript Generator。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let??
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const??
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/78133.html
摘要:前三個(gè)是為了解決變量聲明定義的問題,而最后一個(gè)則影響最大。下文只介紹前三個(gè)特性。這是因?yàn)榈牡牟恢С謮K級(jí)作用域,變量?jī)H僅被限制到函數(shù)作用域內(nèi)。 原文: http://pij.robinqu.me/JavaScript_Core/ECMAScript/es6/es6_syntax_features.html 源代碼: https://github.com/RobinQu/P...
摘要:前三個(gè)是為了解決變量聲明定義的問題,而最后一個(gè)則影響最大。下文只介紹前三個(gè)特性。這是因?yàn)榈牡牟恢С謮K級(jí)作用域,變量?jī)H僅被限制到函數(shù)作用域內(nèi)。 原文: http://pij.robinqu.me/JavaScript_Core/ECMAScript/es6/es6_syntax_features.html 源代碼: https://github.com/RobinQu/P...
摘要:特性概述比較新特性更多。之后后分篇描述目前已經(jīng)比較成熟的語(yǔ)法特性例如和。同上,但返回該元素的索引號(hào)。和對(duì)象的屬性行為一致。不將參數(shù)強(qiáng)制轉(zhuǎn)行為。判斷是否為在范圍內(nèi)的正整數(shù)。不少層面的特性可以通過進(jìn)行兼容性支持。 原文: http://pij.robinqu.me/JavaScript_Core/ECMAScript/es6/es6_api_extension.html 源...
摘要:更新了個(gè)版本,最新正式版是語(yǔ)言的下一代標(biāo)準(zhǔn),早已在年月正式發(fā)布。基本不支持移動(dòng)端瀏覽器對(duì)的支持情況版起便可以支持的新特性。比較通用的工具方案有,,,等。 1、ECMAScript是什么? 和 JavaScript 有著怎樣的關(guān)系? 1996 年 11 月,Netscape 創(chuàng)造了javascript并將其提交給了標(biāo)準(zhǔn)化組織 ECMA,次年,ECMA 發(fā)布 262 號(hào)標(biāo)準(zhǔn)文件(ECMA-...
摘要:的翻譯文檔由的維護(hù)很多人說,阮老師已經(jīng)有一本關(guān)于的書了入門,覺得看看這本書就足夠了。前端的異步解決方案之和異步編程模式在前端開發(fā)過程中,顯得越來越重要。為了讓編程更美好,我們就需要引入來降低異步編程的復(fù)雜性。 JavaScript Promise 迷你書(中文版) 超詳細(xì)介紹promise的gitbook,看完再不會(huì)promise...... 本書的目的是以目前還在制定中的ECMASc...
閱讀 1639·2021-09-02 15:11
閱讀 1976·2019-08-30 14:04
閱讀 2562·2019-08-27 10:52
閱讀 1582·2019-08-26 11:52
閱讀 1203·2019-08-23 15:26
閱讀 2623·2019-08-23 15:09
閱讀 2606·2019-08-23 12:07
閱讀 2234·2019-08-22 18:41