JavaScript的ES6有哪些新知識需要我們去學習
過學習微信小程式開發的基礎知識後,又用了一週的時間來學習開發矽谷雲音樂微信小程式的專案,在小程式專案實戰的課程裡面看到老師使用了大量的 ES6 的語法知識,有些高階的 JavaScript 寫法還是讓我看的有點摸不著頭腦,私下自己抽時間又去學習了一下 ES6 的語法知識,下面就來給大家總結一下我們經常會用到的這些 ES6 的新知識。
介紹
ECMAScript6.0(簡稱 ES6),是JavaScript語言的下一代標準,目的是為了讓JavaScript能夠編寫複雜的大型應用,成為企業級的開發語言。本編文章我們主要從它的新特性變數,字串,陣列,物件導向,Promise等這幾個方面來學習。
變數
let:新增的宣告變數關鍵字,不能重複宣告,屬於塊級作用域,可以修改變數值。
const:新增的宣告變數關鍵字,不能重複宣告,屬於塊級作用域,不能修改的常量值。
var:這是我們在JS中經常用到的宣告變數方式,可以重複宣告,屬於函式級作用域,不能限制它的修改。
{
let a = 1;
const b = 2;
var c = 3;
}
consloe.log(a); // 輸出:Uncaught ReferenceError: a is not defined
console.log(b); // 輸出: 1,外部預設值
console.log(c); // 輸出: 3
字串
模板字串:可以使用反引號(``)標識,可以當作普通字串使用,也可以定義多行字串,還可以在字串中籤入變數(${var})。
字串遍歷:為字串新增了遍歷器介面,可以用for...of迴圈遍歷字串。
// 字串模板
let str1 = `Hello World`;
let str2 = `Hello
World`;
let str3 = `第一個${str1}`;
console.log(str1); // 輸出:Hello World
console.log(str2); // 輸出:Hello World (換行)
console.log(str3); // 輸出:第一個Hello World
// 字串迴圈
let str4 = 'abc'; 大連無痛人流醫院
for(let str of str1){
console.log(str); // 輸出:a b c (換行)
}
陣列
擴充套件運算子:使用三個點(...),是將一個陣列轉為用逗號分隔的引數序列,主要用於函式呼叫。
擴充套件運算子主要應用複製陣列,合併陣列,字串轉陣列等
let arr = [1,2,3];
console.log(...arr); // 輸出:1 2 3
const a1 = [1, 2];
const a2 = [...a1];
console.log(a2); // 輸出:[1,2]
const a3 = [1, 2];
const a4 = [3, 4];
const a5 = [...a3,...a4];
console.log(a5); // 輸出:[1,2,3,4]
陣列常用方法:
Array.from(),將兩類物件轉換為真正的陣列
Array.of(),一組值轉換為陣列
copyWithin(target,start,end),將指定位置的成員複製到其它位置,如:[1,2,3].copyWithin(0,2) // [3,2,3]
find(),找出第一個符合條件的陣列成員,引數為回撥函式,如:[1,2,3].find(n=>n>1) // 2
findIndex(),返回第一個符合條件的陣列成員的位置索引,如:[1,2,3].findIndex(n=>n>1) // 1
includes(),返回布林值,表示某個陣列是否包含給定的值,如:[1,2,3].includes(1) // true
箭頭函式
使用箭頭(=>)定義函式,箭頭函式的 this 指向物件。
語法:(引數1, 引數2, …, 引數N) => { 函式宣告 }
var fun = () => {
console.log('沒有引數的函式');
}
解構賦值
解構是指從陣列和物件中提取值,對變數進行賦值。
let [a, b, c] = [1, 2, 3];
console.log(a + " " +b + " " +c) // 輸出: 1 2 3
let [x, y = 'b'] = ['a'];
console.log(x + " " + y); // 輸出:a b
函式
可以為函式的引數指定預設值
function foo(x = 1, y = 2) {
console.log(x, y);
}
foo(undefined, null); // 輸出:1 null
Promise物件
Promise 是非同步程式設計的一種解決方案,解決非同步回撥。它代表未來將要發生的事件,可以獲取非同步操作的訊息。
Promise 物件三種狀態:
pending 初始化狀態
fulfilled 成功狀態
rejected 失敗狀態
const promise = new Promise(function(resolve, reject) {
// ... some code
if (/* 非同步操作成功 */){
resolve(value);
} else {
reject(error);
}
});
// 呼叫
promise.then(function(value) {
// 成功
}, function(error) {
// 失敗
});
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70005147/viewspace-2787357/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- es6新知識
- ES6 新知識
- 對於你們駁來駁去的《停止學習框架》,我有話說!框架
- AI=機器學習²,我們在去往²的路上AI機器學習
- 深度學習的困境,我們該何去何從?深度學習
- ES6的這些新知識你記住了沒?
- 怎麼學好Java?需要學習哪些知識?Java
- 高中生需要養成的學習習慣有哪些
- 人工智慧需要學習的知識技能有哪些?人工智慧
- 初學者學習微服務 需要了解哪些知識?該如何入門微服務?有哪些優質的教程可以學習?微服務
- 2016年我們需要關注學習這些框架框架
- Java程式設計師需要學習哪些知識?Java程式設計師
- JavaScript物件:我們真的需要模擬類嗎?JavaScript物件
- 學習雲端計算好就業嗎?需要學習哪些知識?就業
- 接到需求任務,我們需要做哪些事情?
- 科技新知 | 深度學習的前世今生深度學習
- 參加Python培訓需要多少錢?都需要學習哪些知識?Python
- 學習React之前你需要知道的的JavaScript基礎知識ReactJavaScript
- [譯]JavaScript ES6 讓我們寫得少,做得多JavaScript
- 學習UI設計都需要了解哪些知識?UI
- 在哪些情況下我們需要匯入FMEA?
- WCF技術我們應該如何以正確的方式去學習掌握
- 學習雲端計算需要哪些軟體,需要什麼知識面?
- 新手學Web前端有哪些方法?該怎麼去規劃學習?Web前端
- vim編輯器有哪些模式?學習linux需要學什麼模式Linux
- 為什麼學人工智慧首推Python 需要學習哪些知識人工智慧Python
- MySQL的儲存方式有哪些?linux運維需要哪些知識MySqlLinux運維
- 或許我們在 JavaScript 中不需要 this 和 classJavaScript
- 學網路安全需要什麼基礎?學習內容有哪些?
- 參加軟體測試培訓需要學習哪些知識
- 嵌入式Linux開發工程師需要學習哪些知識Linux工程師
- 學javascript有哪些開發工具JavaScript
- Javaweb都有哪些框架需要學習?JavaWeb框架
- 我們需要怎樣的 Service
- javascript陣列去重(ES6版)JavaScript陣列
- JavaScript ES6 async/await的簡單學習demoJavaScriptAI
- 學習Tomcat,我們應該懂的Tomcat
- 我們該如何學習機器學習中的數學機器學習