JavaScript 6 的新特性介紹
JavaScript 6裡都有啥新鮮東西?讓我們一起來看看JavaScript 6的一些新特性。
let
,const
(用來定義block-local變數), 程式過程中的function
解構:
let {x, y} = pt; let [s, v, o] = triple();
(前提是let pt = {x:2, y:-5}
)預設引數值:
function f(x, y=1, z=0) {⋯}
其它引數:
function g(i, j, ...r) { return r.slice(i, j); }
(不需要再使用arguments
)。資料展開:
let a = [0,1,2,3], o = new Something(...a);
。也可以用於陣列字面量:[1, ...array, 4]
.物件簡寫:
let one = 1; { one, func_one() {return 1;}, ['key ' + one]: 1 }
.函式簡寫
(a) => a * a
效果等同(function(a) { return a * a; }).bind(this)
map, set:
let m = new Map(); m.set(key, value); m.has(key); m.get(key)
.
還包括.clear()
,.delete()
,.forEach()
,.keys()
.弱map:
let map = new WeakMap()
。當有迴圈引用時使用它。同理new WeakSet()
。promise:
new Promise((resolve, reject) => {…})
.當
promise.then(value => {…})
時,resolve(valueOrPromise)
返回承諾的值 (或者是一個新的promise,形成鏈式呼叫)當
promise.then(…).then(…).catch(error => {…})
時reject(new Error(…))
中斷promise快速 promise 建立:
Promise.resolve(value)
,Promise.reject(error)
.迭代:
Promise.all(listOfPromises).then(listOfValues => …)
,Promise.race(listOfPromises).then(valueThatResolvedFirst => …)
代理:
let obj = new Proxy(proto, handler)
.
簡單說: 使用類物件的元素進行過載(能夠帶來所有可訪問的屬性。)生成器:
function* gen() { yield 1; yield 2; }
事實上,gen()
會返回一個含有next()
函式的物件。迴圈:
for (var [key, val] of items(x)) { alert(key + ',' + val); }
。-
類定義中使用
extends
,super
, 和static
:class Point extends Base { constructor(x,y) { super(); this[px] = x, this[py] = y; this.r = function() { return Math.sqrt(x*x + y*y); } } get x() { return this[px]; } get y() { return this[py]; } proto_r() { return Math.sqrt(this[px] * this[px] + this[py] * this[py]); } equals(p) { return this[px] === p[px] && this[py] === p[py]; } }
-
符號(Symbol)物件,建立私有的key,可用於map和類中(私有成員
members)。let a = Map(); { let k = Symbol(); a.set(k, 'value'); // 這裡你可以訪問和設定'value',比如a.get(k)。}//這裡不行,k是不可見的。
-
模組化:
module math { export function sum(x, y) { return x + y; } export var pi = 3.141593; }import {sum, pi} from math; alert(sum(pi,pi));
-
模板式字串: 可以多行,並能嵌入變數。
`You are ${age} years old.`
.// 多行字串re`line1: (words )* line2: w+`// It desugars to:re({raw:'line1: (words )*nline2: w+', cooked:'line1: (words )*nline2: w+'})
型別化陣列
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2459/viewspace-2803448/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 簡短介紹 C# 6 的新特性C#
- Angular 8的新特性介紹Angular
- iOS 8 新特性介紹iOS
- Rails 4.0新特性介紹AI
- Redis4.0的新特性介紹Redis
- Apache Cassandra 4.0新特性介紹Apache
- TiDB 5.0.0新特性介紹TiDB
- [譯] Chrome 71 新特性介紹Chrome
- webpack4新特性介紹Web
- MySQL 8.0新特性更新介紹MySql
- Chrome 63 Beta新特性介紹Chrome
- JDK1.5新特性介紹JDK
- 前端-JavaScript新特性(ES6)前端JavaScript
- AnalyticDB for PostgreSQL 6.0 新特性介紹SQL
- Chrome 66 開發者工具新特性介紹Chrome
- Dash 2.16版本新特性介紹
- ES6新特性:JavaScript中的Reflect物件JavaScript物件
- Node.js 4.0 中的 ES 6 特性介紹Node.js
- React v16.6 新特性介紹React
- 【IDL】IDL 8.4新特性介紹
- Dash 2.17版本新特性介紹
- javascript ES6 新特性之 解構JavaScript
- MySQL5.6版本的新特性介紹MySql
- Java EE 7 三大新特性的介紹Java
- HashSet的特性介紹
- [Javascript] Promise ES6 詳細介紹JavaScriptPromise
- SQL?Server新特性SequenceNumber用法介紹YTZBSQLServer
- Flutter 3.7 新特性:介紹後臺isolate通道Flutter
- ES6新特性:JavaScript中的Map和WeakMap物件JavaScript物件
- MyRocksTTL特性介紹
- Android新特性介紹,ConstraintLayout完全解析AndroidAI
- Docker的原理及特性介紹Docker
- Visual Studio 2008開發新特性系列課程(6):VS2008新特性之AJAX介紹
- ECMAScript6.0新特性介紹第七篇
- 【劉文彬】 EOS1.1版本新特性介紹
- ES6新特性:JavaScript中內建的延遲物件PromiseJavaScript物件Promise
- JavaScript ES6 特性JavaScript
- 介紹Ext JS 4.2的新特性的《深入淺出Ext JS》上市JS