• 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();

    每天进步一点点~~~
  • 相关阅读:
    MyBatis学习总结(5)——实现关联表查询
    MyBatis学习总结4--解决字段名与实体类属性名不相同的冲突
    MyBatis学习总结3-优化MyBatis配置文件
    各种数据库的数据类型
    Ubuntu下jdk配置
    null和""的区别
    单例模式
    知识体系(不断更新)
    Servlet错误一览
    如何锻炼敲代码的能力
  • 原文地址:https://www.cnblogs.com/heshimei/p/9133563.html
Copyright © 2020-2023  润新知