IT行业那些深奥的术语

shuke 2021-12-31 424

代码的健壮性

:可以这么认为,函数能处理参数中的各种错误,而不会抛出错误;

比喻:如果一个人很健壮,那么他在遇到一些小毛病的时候,比如感冒,能够很快恢复,而不至于遇到感冒就倒掉了


最新回复 (5)
全部楼主
  • shuke 2022-1-4
    2

    水仙花树

    数据的每一位数值加上该数据长度的幂 等于 该数据:


        function sxh(nn) {
            let tmpn = nn.toString()
            let sum = 0
            for (let item in tmpn) {
                sum += (tmpn[item] * 1) ** tmpn.length
            }
            if (sum == nn) {
                console.log("shuxianhua:"sum)
            }
        }
        for (let i = 100i < 99999i++) {
            sxh(i)
        }


  • shuke 2022-1-6
    3

    url 编码与解码

    有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了,例如%指定特殊字符,编码为%25、 #表示书签,编码为%23、 &表示参数间的分隔符,编码为%26,由两种方法解决:

    (1)可以用replace方法替换成编码

    data2=data2.replace(/\%/g,"%25");
    data2=data2.replace(/\#/g,"%23");
    data2=data2.replace(/\&/g,"%26");

    (g表示全局匹配,即替换掉字符中所有的空格和换行,i表示忽略大小写,gi表示全局匹配并忽略大小写)

     

    (2)java提供了对文字进行编码的3个函数:

    escape

    encodeURI

    encodeURIComponent

    主要用法有:

    传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断,例如:url:'ViewBillers?outdata='+encodeURIComponent(outdata1),

    进行url跳转时可以整体使用encodeURI

     

    例如:Location.href=encodeURI("http://cang.baidu.com/do/s?word=百度&ct=21");

     

    /* 
    url中文转码,url转化为OBJ类型
    */
    function urlToObj(str){
        if(!str){return {}}
        str=decodeURI(str)
        str=str.slice(1)
        str=str.replaceAll(/&/g,"',")
        str=str.replaceAll(/=/g,":'")
        if(str.indexOf(":")<0){
            return {}
        }
        eval("str={"+str+"'}")
         
        return str
    }


  • shuke 2022-1-13
    4

    怪异盒子(IE盒模型)


    标准盒子的大小的计算

    css中设置的width和height分别代表内容区域(content)的大小

    标准盒子真正的大小的计算:

    • 宽度= content(width)+ padding 2(左右)+ border 2(左右)

    • 高度=content(height)+ padding 2(上下) + border 2(上下)

    标准盒子所占空间的大小计算:

    • 宽度= content(width)+ padding 2(左右)+ border 2(左右) + margin * 2(左右)
    • 高度=content(height)+ padding 2(上下) + border 2(上下)+ margin * 2(上下)

    怪异盒子(IE盒模型)

    image-20210824152852636

    width和height包含了content和padding和border,目前主流的浏览器默认都是标准盒模型

    • 可以通过box-sizing来转换盒模型
      • content-box:标准盒模型
      • border-box:怪异盒模型

    怪异盒子真正的大小的计算:

    • 宽度= width(包含了content+padding+border)
    • 高度= height(包含了content+padding+border)

    怪异盒子所占空间的大小的计算:

    • 宽度=width(包含了content+padding+border)+ margin * 2(左右)
    • 高度 =height(包含了content+padding+border)+ margin * 2(上下)
  • shuke 2022-2-21
    5

    浅拷贝

    • 只是拷贝了对象的基本类型的数据,但如果有嵌套对象,那么只是拷贝了嵌套对象的地址,实际上还是共用同一个嵌套对象




    深拷贝

    • 概念:对象的完全复制。包括嵌套对象。
    • 思路:定义一个函数,用于遍历需要复制的对象的每个属性,如果属性值是基本类型数据,则直接复制。但如果属性值是对象(不考虑函数之类的),那么就对该对象继续进行递归调用。


  • shuke 2022-2-21
    6

    异步编程

    异步:即不需要等待前面的执行结果。比如扫码点餐,不需排队

    • 实际应用中,很多时候,需要多个异步操作能够按照顺序执行。比如先获取电影数据的个数,获取数据的个数后再获得具体的电影数据,还需要获取电影类型的数据。这样导致了回调函数的不断嵌套
    • 回调地狱是指因为多个异步操作需要按一定顺序执行,导致每个异步操作的回调函数代码形成了多层嵌套。导致了代码阅读不易,维护不方便

    回调地狱

    Promise

    概念

    • Promise是ES6标准化提供的一套异步编程的解决方案,用来替代传统回调函数的异步操作。
    • Promise在JavaScript中是一个内置的类,它的每一个对象都可以负责一个异步操作。




    async &await

    概念

    • ES7 的新增的内容,作为异步编程的最终解决方案。
    • async作为一个函数的修饰符,表示该函数主要用于解决异步编程问题。即该函数里一般情况下主要执行异步代码。
    • await作为一个修饰符。只能够在async函数中使用。表示等待一个异步操作结束并接收异步操作的处理结果。但需保证该异步操作是用promise来处理的

    效果

    • 能够让多个异步操作像同步代码一样顺序执行并拿到异步操作的数据


返回