美文网首页
用promise获取新闻练习、class:类、指数运算符(幂):

用promise获取新闻练习、class:类、指数运算符(幂):

作者: 琉佳 | 来源:发表于2019-11-11 17:08 被阅读0次

    1、用promise获取新闻练习:

    //定义获取新闻的功能函数

      function getNews(url){

        let promise = new Promise((resolve,reject) => {

          // 状态:初始化

          // 执行异步任务

          // 创建xmlHttp实例对象

          let xmlHttp = new XMLHttpRequest();

          console.log(xmlHttp.readyState);

          //绑定redayState监听

          xmlHttp.onreadystatechange = function(){

            if(xmlHttp.readyState === 4){ //全等于4,请求已完成

              if(xmlHttp.status == 200){//请求成功

                // console.log(xmlHttp.responseText);

                //修改状态

                resolve(xmlHttp.responseText);//修改promise的状态为成功的状态

              }else{//请求失败

                reject('暂时没有新闻内容');

              }

            }

          };

          // open设置请求的方式以及url

          xmlHttp.open('GET',url);

          // 发送

          xmlHttp.send();  //ajax请求发送

        })

        return promise;

      }

      getNews('http://localhost:3000/news?id=2')

        .then((data) => {

          console.log(data);

          // console.log(typeof data);

          // 准备获取评论内容的url

          let commentsUrl = JSON.parse(data).commentsUrl;

          let url = 'http://localhost:3000' + commentsUrl;

          // 发送请求获取评论内容

          return getNews(url);

        },(error) => {

          console.log(error);

        })

        .then((data) => {

          console.log(data);

        },() => {

        });

    2、class:类

    *通过class定义类/实现类的继承

    * 在类中通过constructor定义构造方法

    * 通过new来创建类的实例

    * 通过extends来实现类的继承

    * 通过super调用父类的构造方法

    * 重写从父类中继承的一般方法

    3、指数运算符(幂): **。console.log(2 ** 3);//8

    4、Array.prototype.includes(value) : 判断数组中是否包含指定value

    eg:console.log(arr.includes('a'));

    5、字符串扩展:

    includes(str) : 判断是否包含指定的字符串

    startsWith(str) : 判断是否以指定字符串开头

    endsWith(str) : 判断是否以指定字符串结尾

    repeat(count) : 重复指定次数  eg:console.log(str.repeat(5));

    6、数值扩展:

    *二进制与八进制数值表示法: 二进制用0b, 八进制用0o

    *Number.isFinite(i) : 判断是否是有限大的数

    *Number.isNaN(i) : 判断是否是NaN

    *Number.isInteger(i) : 判断是否是整数

    *Number.parseInt(str) : 将字符串转换为对应的数值

    *Math.trunc(i) : 直接去除小数部分

    7、数组扩展:

    *Array.from(v) : 将伪数组对象或可遍历对象转换为真数组

    *Array.of(v1, v2, v3) : 将一系列值转换成数组

    *find(function(value, index, arr){return true}) : 找出第一个满足条件返回true的元素

    *findIndex(function(value, index, arr){return true}) : 找出第一个满足条件返回true的元素下标

    8、对象扩展:

    *Object.is(v1, v2):判断2个数据是否完全相等

    *Object.assign(target, source1, source2..):将源对象的属性复制到目标对象上

    *直接操作 __proto__ 属性

      let obj2 = {};

    obj2.__proto__ = obj1;

    9、vue:

    引入Vue.js

    创建Vue对象

    el : 指定根element(选择器)

    data : 初始化数据(页面可以访问)

    双向数据绑定 : v-model

    显示数据 : {{xxx}}

    理解vue的mvvm实现

    ljh原创笔记整理,请勿抄袭,谢谢支持

    相关文章

      网友评论

          本文标题:用promise获取新闻练习、class:类、指数运算符(幂):

          本文链接:https://www.haomeiwen.com/subject/pontictx.html