EMSAscript
1.javaScript 中const、var、let区别
const 定义的变量不可修改 而且必须初始化 =>解决闭包变量污染问题
var 定义的变量可以修改 如果不初始化则默认值为undefined
let 是块级作用域 函数内部使用let定义后 对函数外部不影响
2.浅拷贝 object.assign(target,source)
等用于对象扩展运算符var target =(...source)
例如:
var source = {age:20,gender:"男"};
var target = object.assign(b,a);
3.Promise基础
<script>
function fn(){
return new Promise((resolve,reject)=>{
setTimeout(()=>{
console.log("你好");
//如何告诉外界已经执行完了
resolve();
},1000);
});
}
fn().then(res=>{
console.log("下一步");
fn().then(res=>{
console.log("完成");
});
});
</script>
4.Promise 解决(回调地狱)的问题
fn1().then(res=>{
return fn2();//返回一个promise对象
}).then(res=>{
rerurn fn1();
}).then(res=>{
rerurn fn2();
})
5.Promise传参
var promise = new Promise((resolve,reject)=>{
//把需要执行的异步操作放在这里
//b、
$.get("/getUser"),res={
//res是从服务器中接收到的数据
//把数据传到下一步操作中
//告诉外界本次的异步操作已经执行完毕了
}
//c、
resolve(res);
});
//a、
promise.then(res=>{
//d、
console.log(res);
});
6.promise错误处理
function getBooks(){
return Promise((resolve,reject)=>{//reject 承载异步操作请求失败
//执行异步操作
$.ajax({
url:"/getBooks",
type:"GET",
success(res){//res为成功获取数据
resolve(res);
},
error(resError){//resError此时为错误信息
//
resolve(resError);
}
})
});
}
//第一种执行方式
// getBooks().then(res=>{
// //res为请求成功获取到的数据
// },resError={
// //返回错误信息
// console.log(resError);
// });
//第二种执行方式 推荐使用该执行方式
getBooks().then(res=>{
//成功了
}).catch(resError=>{
//这里也可以获取到错误信息
})
7.async 是基于promise封装出来的
function f1(){
return new Promise(resolve=>{
setTimeout(()=>{
console.log('你好');
resolve();
},1000);
})
}
(async function(){
await f1();//此时为异步函数
console.log("第二步");
await f1();
await f1();
await f1();
console.log("第三步");
})()
8.async错误处理
function q(){
return new Promise((resolve,reject)=>{
setTimeout(()=>{
reject("你好");
},100)
})
}
(async function(){
try{//只能使用try{}catch(){} 老语法
let res = await q();
console.log(res);
}catch(e){
console.log(e);
}
})()
9.类class
class Student{
//构造方法
constructor(name,age){
this.name=name;
this.age=age;
}
}
var p1 = new Student();
10.如何判断一个变量能否被访问?
//-->知识点:词法作用域
//1、首先查看当前作用域
//2、查看当前作用域的上级
//3、。。。。。。。。一直找到全局作用域
//浏览器如果没有处于调试状态,那么当前作用域就是全局作用域
//如果浏览器处于调试状态,那么当前作用域就看断点的位置
// function f1(){
// console.log(age);
// var age=18;
// console.log(age);
// }
// var length=100;
// f1();
EMSAscript的更多相关文章
随机推荐
- VMware安装黑威联通教程+文件 亲身测试成功 老骥伏枥黑威联通母盘QNAP1G-BOOT 1G
1.首先致敬老骥伏枥大神的帖子. [老骥伏枥-原创]制作黑威联通启动盘:进阶篇 2.其次感谢这位作者的安装教程 作者:f541883216 [老骥伏枥-原创]用我的黑威联通启动盘在WMware搭建系统 ...
- 2018牛客多校1 - J Different Integers 莫队/主席树签到
题意:给出n<5e4,a[1...n],单次1e5总次1e6次查询除去区间(L,R)的数的个数 开场5分钟:莫队是不可能莫队的,这道题是不可能莫队的 最后1小时:真香 具体操作没啥特别的,注意一 ...
- JavaScript 流程控制器
已知有流程step1.step2.step3.step4.step5 , 如何控制输出下面过程 例如: 1:step1.step2.step3.step2.step3.step4.step5 2:st ...
- chromedriver for mac
- Python学习 day10
一.默认参数的陷阱 先看如下例子: def func(li=[]): li.append(1) print(li) func() func() func(li=['abc']) func() 结果: ...
- plsql起别名出现???乱码,需要配置环境变量
NLS_LANG:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
- XML 十六进制值 是无效的字符错误 解决方法之一 转
/// <summary> /// 过滤非打印字符 /// </summary> /// <param name="tmp">待过滤</p ...
- 判断文本(text_to_be_present_in_element)
判断文本 在做结果判断的时候,经常想判断某个元素中是否存在指定的文本,如登录后判断页面中是账号是否是该用户的用户名.在前面的登录案例中,写了一个简单的方法,但不是公用的,在 EC 模块有个方法是可以专 ...
- HDU 5695 ——Gym Class——————【贪心思想,拓扑排序】
Gym Class Time Limit: 6000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total S ...
- Linux下ffmpeg添加Facebook/transform代码块实现将全景视频的球模型转换成立方体模型
Facebook事实上已开始在平台中支持360度全景视频的流播,但公司对此并不满足.其工程师更是基于锥体几何学设计出了一套全新的视频编码,号称最高能将全景视频的文件大小减少80%.(VR最新突破:全景 ...