ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2.4 八股题目归纳总结

2022-02-04 11:31:10  阅读:174  来源: 互联网

标签:八股 radix obj script segments xhr 题目 data 2.4


axios底层

自动判断用户当前环境,如果是浏览器则使用XMLHttpRequests,nodejs则使用内置http模块

  • XMLHttpRequests(AJAX)
function send(config){
return new Promise(resolve => {
            const {url = '', method = 'get', data = {}} = config;
            // 发送ajax请求
            const xhr = new XMLHttpRequest();
            xhr.open(method, url, true);
            xhr.send(data);
            xhr.onload = function() {
                console.log(xhr.responseText)
                resolve(xhr.responseText);
            };

        })
}
  • http modules(nodejs)
//待补充

跨域

  • JSONP
    原理:动态创建一个script标签。利用script标签的src属性不受同源策略限制。因为所有的src属性和href属性都不受同源策略限制。可以请求第三方服务器数据内容。
//去创建一个script标签
var  script = document.createElement("script");
//script的src属性设置接口地址 并带一个callback回调函数名称
script.src = "http://127.0.0.1:8888/index.php?callback=jsonpCallback";
//插入到页面
document.head.appendChild(script);
//通过定义函数名去接收后台返回数据
function jsonpCallback(data){
    //注意  jsonp返回的数据是json对象可以直接使用
    //ajax  取得数据是json字符串需要转换成json对象才可以使用。
}
//其实很蛋疼还得服务器配合返回字段里要调用jsonpCallback(data)让客户端解析才行...

keep-alive 生命周期

  1. activated: 页面第一次进入的时候,钩子触发的顺序是created->mounted->activated
  2. deactivated: 页面退出的时候会触发deactivated,当再次前进或者后退的时候只触发activated

parseInt

parseInt(num,radix);
num:string 填入一个待解析的数字
radix:Number 基数(跟进制没有关系) 2~36之间,其余报错

设num为三位数,记Num为N2N1N0
则结果

=N2*radix^2+N1*radix^1+N0*radix^0

N0N1N2均不可以大于基数radix,大于则会直接被抛弃。
所以parseInt相当于一个进制的直接转换器。

parsePath

  /**
   * Parse simple path.
   * 把一个形如'data.a.b.c'的字符串路径所表示的值,从真实的data对象中取出来
   * 例如:
   * data = {a:{b:{c:2}}}
   * parsePath('a.b.c')(data)  // 2
   */
export function parsePath(path) {
  const bailRE = /[^\w.$]/; 不匹配字母、数字、下划线、点号和$符号,在这里就是找形如arr[0]的位置
  const segments = path.split(".");
  return function (obj) {
    for (let i = 0; i < segments.length; i++) {
      if (!obj) return;
      if (bailRE.test(segments[i])) {

        //this.arr[0]  this[arr[0]]
        const match = segments[i].match(/(\w+)\[(.+)\]/);
        //(\w+) ->任意多个字母数字下划线 
        //\[(.+)\]  ->匹配[]内的内容
        obj = obj[match[1]];
        obj = obj[match[2]];
        continue;
      }
      obj = obj[segments[i]];
    }
    return obj;
  };
}

标签:八股,radix,obj,script,segments,xhr,题目,data,2.4
来源: https://www.cnblogs.com/moushicheng/p/15862523.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有