• 【面筋烧烤手册】20210301


    1.CSS优先级

    <body>
        <div class="lightblue">
            <div class="darkblue">
                <p>我是darkblue</p>
            </div>
        </div>
    
        <div class="darkblue">
            <div class="lightblue">
                <p>我是darkblue</p>
            </div>
        </div>
        <h3>.lightblue p { color: lightblue; }</h3>
        <h3>.darkblue p { color: darkblue; }</h3>
        <h3>后面定义的会覆盖掉</h3>
    </body>
    <style>
        .lightblue p {
            color: lightblue;
        }
        
        .darkblue p {
            color: darkblue;
        }
    </style>
    
    
    (1)id选择器(#myid)
    (2)类选择器(.myclassname)
    (3)标签选择器(div,h1,p)
    (4)后代选择器(h1 p)
    (5)相邻后代选择器(子)选择器(ul>li)
    (6)兄弟选择器(li~a)
    (7)相邻兄弟选择器(li+a)
    (8)属性选择器(a[rel="external"])
    (9)伪类选择器(a:hover,li:nth-child)
    (10)伪元素选择器(::before、::after)
    (11)通配符选择器(*)
    

    2.盒模型

    盒模型都是由四个部分组成的,分别是margin、border、padding和content。
    
    标准盒模型和IE盒模型的区别在于设置width和height时,所对应的范围不同。标准盒模型的width和height属性的
    范围只包含了content,而IE盒模型的width和height属性的范围包含了border、padding和content。
    
    一般来说,我们可以通过修改元素的box-sizing属性设为border-box则用的是IE盒模型来改变元素的盒模型。
    

    3.状态码

    • 100 连接成功 x 已被接受等待处理
    • 200 接受成功 x``请求成功
    • 204 请求成功无资源(OPTIONS的状态码)
    • 203 部分接收 x 是206
    • 301 永久重定向 post变get
    • 302 临时 post变get
    • 304 协商缓存
    • 307 临时 不变post
    • 400 客户端错误 x 报文语法错误
    • 4xx 记不到啊啊啊啊啊啊
    • 401 HTTP 请求没通过认证
    • 403 forbidden 被服务器拒绝
    • 404 无资源
    • 405 禁用此方法
    var Access-Control-Allow-Method = xhr.getResponseHeader('Access-Control-Allow-Method')
    var Access-Control-Allow-Origin = xhr.getResponseHeader('Access-Control-Allow-Origin')
    
    • 500服务器执行请求出错
    • 503 服务器繁忙

    4.描述下原型链

    在这里插入图片描述

    5.输出题

    1.原型

    var a= function () { this.b =3; }
    var c = new a();
    a.protorype.b = 9;
    var b = 7;
    a();
    console.log(b);//7
    console.log(c.b);//3
    

    2.箭头函数

    var func1 = x => x;
    var func2 = x => {x};
    var func3 = x => ({x});
    console.log(func1(1));//1
    console.log(func2(1));//undefined
    console.log(func3(1));//{ x: 1 }
    

    6.JS异步问题

    1)代码补充asyncGetValue()

    function asyncAdd(a, b, callback) {
    	doAsyncWork(a, b).then(value => callback(value));
    }
    function asyncGetValue(a, b) {
    .....
    }
    

    使之能够实现

    asyncGetValue(1,2).then(v => console.log(v));
    
    • 答案
    function asyncGetValue(a,b){
     return new Promise(res=>{
     asyncAdd(a,b,res)
    })
    }
    

    2) 如果是实现asyncGetValues(list),list是一个对象数组,类似于

    const list = [
    {a: 1, b: 2},
    {a: 100, b: 200},
    {a: 11, b: 21},
    {a: 31, b: 41},
    {a: 41, b: 51}];
    function asyncGetValues(list) {
    .....
    }
    
    • 答案
    return Promise.all(list.map(x=>{return new Promise(
    	res=>asyncAdd(x.a,x.b,res)
    )}))
    

    3)在第三问的基础上实现并发控制,即有一个最大的并发数maxConcurreent

    return new Promise((res)=>{
     let cnt=0;
     let length=list.length;
     let ansList=Array(length).fill(false);
     while(cnt<Math.min(length,maxConcurrent)) next();
     const next=()=>{
         let current=cnt++;
         let currentObj=list[current];
         addAsync(currentObj.a,currentObj.b,(value)=>{
             ansList[current]=value;
              if(cnt<length) next();
         })
        if(cnt>=length&&ansList.filter(x=>x===false).length===0) res(ansList) 
     }
    })
    
  • 相关阅读:
    进程锁和进程池(附线程池)
    Python多进程
    queue队列
    随笔:python3+yagmail邮件发送,简单易操作
    随笔:用python的pip命令时却显示没有提供命令:Did not provide a command
    随笔:python+selenium+unittest用qq邮箱上传文件并发送邮件
    随笔:用HtmlTestRunner生成报告
    随笔:Linux里mysql的tar包安装
    Performance Testing 前期准备以及场景设计
    Performance Testing 入门小结
  • 原文地址:https://www.cnblogs.com/SiriusZHT/p/14521321.html
Copyright © 2020-2023  润新知