ES6 13個(gè)新特性總結(jié)
1. let const
let 表示申明變量。const 表示申明常量。
- 常量定義了就不能改了。對(duì)象除外,因?yàn)閷?duì)象指向的地址沒變。
- const在申明是必須被賦值。
- 兩者都為塊級(jí)作用域。
塊級(jí)作用域與函數(shù)作用域。任何一對(duì)花括號(hào)({和})中的語句集都屬于一個(gè)塊,在這之中定義的所有變量在代碼塊外都是不可見的,我們稱之為塊級(jí)作用域。函數(shù)作用域就好理解了,定義在函數(shù)中的參數(shù)和變量在函數(shù)外部是不可見的。
const a = 1 a = 0 //報(bào)錯(cuò)
2. 模塊字符串``
可以使用反引號(hào)``來進(jìn)行字符拼接。${}
3. 解構(gòu)
可以使用{}來對(duì)數(shù)組和對(duì)象進(jìn)行解構(gòu)。


4. 函數(shù)的參數(shù)默認(rèn)值
函數(shù)傳參可以有默認(rèn)值
// ES6;
function printText(text = 'default') {
console.log(text);
}
5. Spread / Rest 操作符 ...
Spread / Rest 操作符指的是 ...,具體是 Spread 還是 Rest 需要看上下文語境。
- 當(dāng)被用于迭代器中時(shí),它是一個(gè) Spread 操作符:迭代器 (Iterator)是按照一定的順序?qū)σ粋€(gè)或多個(gè)容 器 中的元素行進(jìn)遍歷的一種機(jī)制
function foo(x,y,z) {
console.log(x,y,z);
}
let arr = [1,2,3];
foo(...arr); // 1 2 3
- 當(dāng)被用于函數(shù)傳參時(shí),是一個(gè) Rest 操作符:當(dāng)被用于函數(shù)傳參時(shí),是一個(gè) Rest 操作符:
function foo(...args) {
console.log(args);
}
foo( 1, 2, 3, 4, 5); // [1, 2, 3, 4, 5]
6. 箭頭函數(shù)
- 不需要 function 關(guān)鍵字來創(chuàng)建函數(shù)
- 省略 return 關(guān)鍵字
- this始終指向函數(shù)申明時(shí)所在作用域下的this值
//es5
var fun = function() {
}
//es6
var fn = () => {
}
7. for of
- for of遍歷的是鍵值對(duì)中的值
- for in遍歷的是鍵值對(duì)中的鍵
8. class類
ES6 中支持 class 語法,不過,ES6的class不是新的對(duì)象繼承模型,它只是原型鏈的語法糖表現(xiàn)形式。
class Student {
constructor() {
console.log("I'm a student.");
}
study() {
console.log('study!');
}
static read() {
console.log("Reading Now.");
}
}
console.log(typeof Student); // function
let stu = new Student(); // "I'm a student."
stu.study(); // "study!"
stu.read(); // "Reading Now."
9. 導(dǎo)入導(dǎo)出
- 導(dǎo)入improt
- 導(dǎo)出export default
10. promise
Promise 用于更優(yōu)雅地處理異步請求。
<script>
new Promise((resolve,reject) => {
setTimeout(function() {
resolve('成功了!')
},1000)
// reject("失敗了,wuwu")
}).then(data => {
console.log(data)
}).catch(err => {
console.log(err)
})
</script>
11. async/await
比promise更好的解決了回調(diào)地獄。
async function() {
awiat fn()
}
12. Symbol
新的基本類型
13. Set集合
存儲(chǔ)任何類型的唯一值,即集合中所保存的元素是不重復(fù)的。類數(shù)組結(jié)構(gòu)。
arr = [1,2,3,1] let arrNew = new Set(arr) arrNew = [1,2,3]
類數(shù)組不是數(shù)組,要轉(zhuǎn)化為數(shù)組Array.form(arrNew)這樣arrNew才是數(shù)組了
- ES6中非常實(shí)用的新特性介紹
- JavaScript ES6的新特性使用新方法定義Class
- JavaScript中的Reflect對(duì)象詳解(ES6新特性)
- 深入淺出ES6新特性之函數(shù)默認(rèn)參數(shù)和箭頭函數(shù)
- 簡單談?wù)凟S6的六個(gè)小特性
- ES6新特性之Symbol類型用法分析
- ES6(ECMAScript 6)新特性之模板字符串用法分析
- ES6新特性之變量和字符串用法示例
- ES6新特性之模塊Module用法詳解
- ES6新特性之字符串的擴(kuò)展實(shí)例分析
- ES6新特性二:Iterator(遍歷器)和for-of循環(huán)詳解
- ES6新特性六:promise對(duì)象實(shí)例詳解
- ES6新特性七:數(shù)組的擴(kuò)充詳解
- ES6新特性八:async函數(shù)用法實(shí)例詳解
- ES6新特性之類(Class)和繼承(Extends)相關(guān)概念與用法分析
- 讓微信小程序支持ES6中Promise特性的方法詳解
- ES6新特性:使用export和import實(shí)現(xiàn)模塊化詳解
- es6新特性之 class 基本用法解析
相關(guān)文章
JavaScript學(xué)習(xí)筆記之JS事件對(duì)象
本文介紹了javascript的事件對(duì)象的相關(guān)資料,需要的朋友可以參考下2015-01-01
Javascript入門學(xué)習(xí)第六篇 js DOM編程
上篇文章納悶的問題,將在這章和以后的幾章里,慢慢搞定。 從今天起,開始學(xué)習(xí)DOM編程 讓我們慢慢稱為一名初級(jí)的js程序員。 然后往js匠人方向發(fā)展。2008-07-07
JavaScript中的toLocaleLowerCase()方法使用詳解
這篇文章主要介紹了JavaScript中的toLocaleLowerCase()方法使用詳解,是JS入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-06-06
JavaScript正則表達(dá)式之multiline屬性的應(yīng)用
這篇文章主要介紹了JavaScript正則表達(dá)式之multiline屬性的應(yīng)用,是JS學(xué)習(xí)進(jìn)階中的重要知識(shí),需要的朋友可以參考下2015-06-06
JavaScript onkeydown事件入門實(shí)例(鍵盤某個(gè)按鍵被按下)
這篇文章主要介紹了JavaScript onkeydown事件入門實(shí)例,onkeydown事件捕捉鍵盤上某個(gè)按鍵被按下的情況,需要的朋友可以參考下2014-10-10
JavaScript中用toString()方法返回時(shí)間為字符串
這篇文章主要介紹了JavaScript中用toString()方法返回時(shí)間為字符串的方法,是JS入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-06-06

