20200331

1.外边距合并/border合并

    若边框为1PX, 则给合并的div添加margin-right:-1px; margin-bottom:-1px;

    表格边框合并:table{border-collapse:collapse;}

2.浅拷贝和深拷贝

    最简单的深拷贝:aa = JSON.parse( JSON.stringify(a) )

 浅复制--->就是将一个对象的内存地址的“”编号“”复制给另一个对象。深复制--->实现原理,先新建一个空对象,内存中新开辟一块地址,把被复制对象的所有可枚举的(注意可枚举的对象)属性方法一一复制过            来,注意要用递归来复制子对象里面的所有属性和方法,直到子属性为基本数据类型。总结,深复制理解两点,1,新开辟内存地址,2,递归来刨根复制

3.jsonp是jquery常用的跨域方法。
4.跨域相关:
    只要协议,域名,端口号不同则视为不同域。解决跨域VUE用axios JQ用jsonp
5.css选择器的优先级
    行内样式>id>class>标签>相邻>子选择器>后代选择器>*>属性>伪类
6.setTimeout clearTimeout  ////setInterval
    时间选择器,清除时间选择器,配合使用,不清除一直循环执行;时间选择器,只执行一次
7.JS跳转
    javascript:history.go(-1)
    javascript:location.href=""
8.VUE router和 router-link怎么实现跳转
 router.go(1)router.push('/')

 

9.怎么判断两个对象相等
    JSON.stringify(obj)==JSON.stringify(obj);//true
10.一行代码实现数组去重
    var arr=["1","ae","323","2434",2,"asd",2];
    [...new Set(arr)]
11.水平垂直居中
  第一种:
#container{
    position:relative;
}
#center{
    width:100px;
    height:100px;
    position:absolute;
    top:50%;
    left:50%;
    transform: translate(-50%,-50%);
}
第二种:
#container{
    position:relative;
}
#center{
    width:100px;
    height:100px;
    position:absolute;
    top:50%;
    left:50%;
    margin:-50px 0 0 -50px;
}
第三种:
#container{
    position:relative;
}
#center{
    position:absolute;
    margin:auto;
    top:0;
    bottom:0;
    left:0;
    right:0;
}

第四种:
#container{
    display:flex;
    justify-content:center;
    align-items: center;
}
12.右边宽度固定,左边自适应
    第一种:
<style>
body{
    display: flex;
}
.left{
    background-color: rebeccapurple;
    height: 200px;
    flex: 1;
}
.right{
    background-color: red;
    height: 200px;
    width: 100px;
}
</style>
<body>
    <div class="left"></div>
    <div class="right"></div>
</body>
第二种:
<style>
    div {
        height: 200px;
    }
    .left {
        float: right;
        width: 200px;
        background-color: rebeccapurple;
    }
    .right {
        margin-right: 200px;
        background-color: red;
    }
</style>
<body>
    <div class="left"></div>
    <div class="right"></div>
</body>
13.locationStorage不能清除的时候,什么时候过期
    除非被清除,否则永久保留。clear可清除
    localStorage.clear();
    localStorage.setItem()localStorage.getItem()
14.sessionStorage和locationStorage能跨域拿到值吗?比如www.baidu.com设置的值能在m.baidu.com拿到吗?
    不能!我试过了
15.不用循环语句实现一个长度为100的数组,索引值和值相同的数组[0,1,2,3...100]
    var arr=new Array(100)
    [...arr.keys()]
16.解释原因
    var a={},b={key:'b'},c={key:'c'},d=[3.5.6];
    a[b]=123;a[c]=345;a[d]=333;
    console.log(a[b]);   //345
    console.log(a[c]);   //345
    console.log(a[d])    //333
    解释:a[XX]中的xx会自动转为字符串,所以a[{}]会转换为["object object"],所以a[b]和a[c]转为一样的值。
17.git使用过程中,如果你在开发业务,突然另外一个分支需要修改BUG,怎么办。
    git stash   //将本次修改存到暂存区
    git stash pop //将所有暂存区的内容取出来
18.  DOM事件委托是什么原理,有什么优缺点。
    原理:事件冒泡机制
    优势:可以大量减少内存,减少时间注册;动态新增则元素时不用再进行事件绑定;
    劣势:盲目使用可能会出现事件误绑
19.var a=2;var b=3;var c=a+++b;
    a++是先计算再++  c=a+b==>5  a=2+1=3
    ++a是先加再计算
20.请详尽解释AJAX的工作原理
    创建ajax对象,判断数据传输方式,打开链接,发送,判断相应状态,执行回调函数
 $.ajax({
    headers: {'Content-Type': 'application/json;charset=UTF-8'},
    url: "",data: JSON.stringify(setData),
    type: "POST",
    dataType: "jsonp",
    success: function (res) {},error: function (res) {}
    })
21.如何优化自己的代码
    代码重用,避免全局变量,拆分函数避免函数过于臃肿,注释
22.请解释一下语义化HTML
    内容使用特定标签,通过标签就能大概了解整体页面的布局
23.写一个function去除字符串前后的空格
let str = ' hello '
console.log(str.trim())

 

   

posted @ 2020-03-31 14:34  就想来看看  阅读(168)  评论(3编辑  收藏  举报