一、變數
在ES中,使用var / let / const定義變數。其中,var是定義變數的一種方式,它有著很多缺陷。let語句聲明一個塊級作用域的本地變數,var語句聲明一個函數作用域的或全局作用域的變數。
例如:
var a = 1;
if(true){
var a = 5;
}
console.log(a);
上述代碼輸出結果為5,因為var定義的變數作用域的範圍是函數或全局作用域,if塊中的a對函數外面的a產生了影響。
而let沒有這個問題,它定義的變數只在它聲明的塊中有效。例如:
let a = 1;
if(true){
let a = 5;
}
console.log(a);
上述代碼輸出結果為1。
二、箭頭函數
ES6中引入了箭頭函數,它可以讓我們寫出更加簡潔的匿名函數。例如:
var arr = [1, 2, 3, 4, 5, 6];
// 普通函數寫法
arr = arr.map(function(item) {
return item * 2;
});
console.log(arr);
// 箭頭函數寫法
arr = arr.map((item) => item * 2);
console.log(arr);
箭頭函數使用匿名函數的形式,如上述代碼中的(item) => item * 2,代表輸入參數是item,輸出結果是item * 2。
三、解構
ES6中引入了解構,它可以讓我們更加方便地獲取數組或對象中的值。例如:
let arr = [1, 2, 3];
// 解構數組
let [a, b, c] = arr;
console.log(a, b, c);
let obj = {name: 'John', age: 18};
// 解構對象
let {name, age} = obj;
console.log(name, age);
上述代碼中,使用數組解構可以快速獲取數組中的元素,使用對象解構可以快速獲取對象中的鍵值對。
四、Promise
ES6中引入了Promise,它可以讓我們更加方便地管理非同步操作。例如:
function myPromise() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('success');
}, 2000);
});
}
myPromise().then(result => console.log(result));
上述代碼中,myPromise函數返回一個Promise對象,我們可以使用.then方法來獲取非同步操作的結果。在2秒鐘後,Promise對象會返回一個成功的結果’success’。
五、模板字元串
ES6中引入了模板字元串,可以方便地處理字元串拼接操作。例如:
let name = 'John';
let age = 18;
let str1 = name + ' is ' + age + ' years old.';
let str2 = `${name} is ${age} years old.`;
console.log(str1);
console.log(str2);
模板字元串使用${}來引用變數,可以使代碼更加清晰易懂。
原創文章,作者:ZIXPD,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/371840.html