模板字符串
let str = `${name} is ${age} years old
cd 目錄 執行 node xxx.js 輸出consolestr3 =
I love you
輸出保持換行,所有的格式保留window.onload = func; 當頁面加載出來的時候才執行函數,需要注意的是,這里不是func();如果有括號就變成了執行函數,這里的意思是講函數賦值給onload;
定時和延時函數
setTimeout(function () {
console.log(("xxxx"));
},2000)
- Generator 函數
Generator 函數主要是控制流程管理,用異步操作取代回調處理
Generator 函數是 ES6 提供的一種異步編程解決方案,語法行為與傳統函數完全不同
1.返回值 function*
2.yield
3.調用Generator函數后,該函數并不執行,返回的也不是函數運行結果,而是一個指向內部狀態的指針對象,需要調用next才會執行,每次next執行到下一個yield關鍵字位置。
4.返回值格式:{ value: 'hello', done: false } value代表內部狀態的值,done代表是否遍歷結束
function step4(value) {
return `step4 ${value}`;
}
function step3(value) {
return `step3 ${value}`;
}
function step2(value) {
return `step2 ${value}`;
}
function step1() {
return "step1_start";
}
function* stepFunc() {
let value1 = step1();
let value2; yield value2 = step2(value1);
let value3; yield value3 = step3(value2);
let value4; yield value4 = step4(value3);
console.log(value4);
}
//for of 會遍歷數組的游標
for (let i of stepFunc());
輸出:step4 step3 step2 step1_start
效果和var interator = stepFunc();
interator.next();interator.next();interator.next();interator.next();一樣的
Generator函數的定義加“*”
for of 會拿到游標不斷的調用next() ,直到結束為止
- Promise
Promise 是異步編程的一種解決方案,比傳統的解決方案——回調函數和事件——更合理和更強大
1、ajax 請求網絡 請求成功:顯示數據,請求失敗:跑出異常。
Promise對象代表一個異步操作,有三種狀態:Pending(進行中)、Resolved(已完成,又稱 Fulfilled)和Rejected(已失敗)
function ajax(url) {
var promise = new Promise(function (resolve, reject) {
var request = new XMLHttpRequest();
request.open("GET",url);
request.setRequestHeader("Accept","application/json");
request.responseType = "json";//服務器響應數據類型:json
request.onreadystatechange = handle;
request.send();
function handle() {
// 0 - (未初始化)還沒有調用send()方法
// 1 - (載入)已調用send()方法,正在發送請求
// 2 - (載入完成)send()方法執行完成,已經接收到全部響應內容
// 3 - (交互)正在解析響應內容
// 4 - (完成)響應內容解析完成,可以在客戶端調用了
if(this.readyState !==4) {
return;
}
if(this.state == 200) {
//請求數據成功
resolve(response.message)
}else {
reject(new Error(this.statusText));
}
}
})
return promise;
}
//給resolve 、reject 回調函數賦值
ajax(`test1.json`).then(
json => alert(json.message),
e => alert(e.message)
);