模板字符串
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)
);