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的更多相关文章

随机推荐

  1. [Alpha]Scrum Meeting#6

    github 本次会议项目由PM召开,时间为4月8日晚上10点30分 时长25分钟 任务表格 人员 昨日工作 下一步工作 木鬼 整理开会记录 撰写并发布之前因为清明耽误的博客 SiMrua 寻找方法捕 ...

  2. 停不下来队 Scrum Meeting 博客汇总

    停不下来队 Scrum Meeting 博客汇总 一.Alpha阶段 [Alpha]Scrum Meeting#1 [Alpha]Scrum Meeting#2 [Alpha]Scrum Meetin ...

  3. 2019年华南理工大学程序设计竞赛(春季赛)A NB群友

    https://ac.nowcoder.com/acm/contest/625/A 题意:给出一个区间范围 , 求有多少个数的每一位的积是在这个区间里面的 分析:没错了 ,就是记忆化暴力搜索 ,不断的 ...

  4. 分享一下Ubuntu好用的源

    vim /etc/apt/sources.list 然后用G跳转到最后一行,然后[ESC]切换到命令行模式,然后键入[o](表示在当前行后插入).也可以多插入几个空行.这样可以有条理的和系统默认的区分 ...

  5. python迭代、可迭代对象、迭代器及生成器

    迭代 通常意义上的迭代是指:重复执行一系列运算,从前面的量依次推出后面的量的过程,每一次迭代的结果,会作为下一次迭代的初始值. 在c.c++.java等编程语言中的for循环语句,就是一个迭代过程,例 ...

  6. 第八次 Scrum Meeting

    第八次 Scrum Meeting 写在前面 会议时间 会议时长 会议地点 2019/4/12 22:00 20min 大运村1号楼6F 附Github仓库:WEDO 例会照片 工作情况总结(4.12 ...

  7. $bzoj1027-JSOI2007$ 合金 计算几何 最小环

    题面描述 某公司加工一种由铁.铝.锡组成的合金.他们的工作很简单.首先进口一些铁铝锡合金原材料,不同种类的原材料中铁铝锡的比重不同.然后,将每种原材料取出一定量,经过融解.混合,得到新的合金.新的合金 ...

  8. iview modal对话框的一个小知识点

    我在做一个项目的一个页面的时候有两个弹窗,发现点击一个弹窗的右上角关闭按钮后,打开另一个弹窗的时候,另一个弹窗里面带有上一个弹窗里的样式内容,说明上一个弹窗并没有被销毁. 后来发现modal源码里的c ...

  9. 1.CSS中的定位机制

    标准文档流(Normal flow) 特点: 从上到下,从左到右,输出文档内容 由块级元素和行级元素组成 块级元素: 从左到右撑满页面,独占一行 触碰到页面边缘时,会自动换行 块级标签: div.ul ...

  10. eclipse中springsource-tool-suite(sts)插件安装教程

    插件的下载参照:http://www.cnblogs.com/jepson6669/p/8540157.html 用过的eclipse不能安装成功,需要重新解压新的才能安装成功,不知道为什么? 解压上 ...