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. [转]IOS应用程序多语言本地化解决方案

    最近要对一款游戏进行多语言本地化,在网上找了一些方案,加上自己的一点点想法整理出一套方案和大家分享! 多语言在应用程序中一般有两种做法:一.程序中提供给用户自己选择的机会:二.根据当前用户当前移动设备 ...

  2. CSS 两个行内块元素,宽度相加刚好等于父盒子容器的元素,但第二个元素掉在第二行解决办法

    我们可以发现:两个行内块元素,宽度相加刚好等于父盒子容器的元素,但第二个元素掉在第二行,这是什么问题呢? 我们先来看一下效果: <!DOCTYPE html> <html lang= ...

  3. 23.each和map函数

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. Python多继承解析顺序的C3线性算法流程解析

    Python多继承MRO 在Python2.1中,采用了经典类,使用深度优先算法解析. Python2.2中,引入了新式类,使用深度优先算法和广度优先算法. 在Python2.3以后的版本中,经典类和 ...

  5. 导出excel设置样式(Aspose.Cells)

    Aspose.Cells.Style style = xlBook.Styles[xlBook.Styles.Add()];style1.Pattern = Aspose.Cells.Backgrou ...

  6. Google Map API抓取地图坐标信息小程序

    因为实验室需要全国城市乡镇的地理坐标,有Execl的地名信息,需要一一查找地方的经纬度.Google Map地图实验室提供自带的查找经纬度的方法,不过需要一个点一个点的手输入,过于繁琐,所以自己利用G ...

  7. MongoDB实战开发

    [目标]:本文将以实战的形式,向您展示如何用C#访问MongoDB,完成常见的数据库操作任务, 同时,也将介绍MongoDB的客户端(命令行工作模式)以及一些基础的命令. [说明]:MongoDB是什 ...

  8. Java学习之路(四):面向对象

    Java中的面向对象 概念:面向对象的原本的意思是“”万物皆对象“” 面向对象思想的特点: 是一种更符合我们思想习惯的思想,将复杂的事情简单化 使我们角色发生了转换,将我们从执行者变成了指挥者 面向对 ...

  9. python中range()和len()函数区别

    函数:len() 作用:返回字符串.列表.字典.元组等长度 语法:len(str) 参数: str:要计算的字符串.列表.字典.元组等 返回值:字符串.列表.字典.元组等元素的长度 实例 1.计算字符 ...

  10. 搭建简单FTP

    搭建简单FTP 环境 CentOS 7 安装 yum install vsftpd 修改配置文件, 在/etc/vsftpd/vsftpd.conf中添加allow_writeable_chroot= ...