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. day0202 (%s)

    #格式化输出# % s d# name = input('请输入姓名')# age = input('请输入年龄')# height = input('请输入身高')# msg = "我叫% ...

  2. 故障排查-linux命令测试端口连通性

    方法一:telnet法 预置条件:安装telnet step 1.rpm -qa telnet-server(无输出表示telnet-server未安装,则执行step2:否则执行step3) ste ...

  3. 高阶篇:4.2.3)DFMEA现有设计:预防控制与探测控制

    本章目的:在现有设计中,明确预防控制与探测控制的定义和手段. 1.现有控制的填写部位: 2.现行设计控制(h)定义: 作为设计过程的一部分,现行设计控制是已经实施或承诺的活动,它将确保设计充分考虑设计 ...

  4. js的节流和防抖

    1,节流 节流就是对连续的函数触发,在设定的间隔时间段内,只让其执行一次. 先来看看js高级程序设计3里面节流的代码 function throttle (method, context, wait) ...

  5. centos崩溃后如何修复

    首先看能不能进单用户模式,能进去,就用mount -o remount,rw / 重置成可写的. 不能进单用户模式,就进入光盘救援模式,进去挂载了系统,这时候通常是必要的动态静态库出了问题,先应该做的 ...

  6. C++ 流控制函数setw()、setfill()、setbase()、setprecision()的使用

    头文件: #include <iostream> #include <iomanip> 功能: std::setw :需要填充多少个字符,默认填充的字符为' '空格 std:: ...

  7. FastDFS安装、配置、部署(一)-安装和部署 (转)

    FastDFS是一个开源的,高性能的的分布式文件系统,他主要的功能包括:文件存储,同步和访问,设计基于高可用和负载均衡,FastDFS非常适用于基于文件服务的站点,例如图片分享和视频分享网站 Fast ...

  8. React 同构开发(二)

    React 同构 所谓同构,简单的说就是客户端的代码可以在服务端运行,好处就是能极大的提升首屏时间,避免白屏,另外同构也给SEO提供了很多便利. React 同构得益于 React 的虚拟 DOM.虚 ...

  9. ServletContextListener知识点

    1 知识点 2 代码演示 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Da ...

  10. 微服务~Consul服务注册与发现

    服务发现是基于微服务架构的关键原则之一.尝试配置每个客户端或某种形式的约定可能非常困难,可以非常脆弱.Consul通过HTTP API和DNS提供服务发现服务.Spring Cloud Consul利 ...