春招博客笔记 2

目录


CSS

div 居中

flex 布局实现 div 居中是常考的题目,需要记住 flex 的几个常用属性,flex-direction \ flex \ flex-wrap,还有居中实现两个比较特殊的 justify-content 和 align-item

父元素 relativ + 子元素 absolute 有两种实现方式,第一种是将子元素 top / bottom / left / right 设置成 0,margin 设置成 auto,针对盒内元素已知宽度;第二种是将 top,left 设置为 50%,transform:translate(-50%,-50%),针对子元素未知宽度。


JavaScript

给 ul 中的 li 添加事件代理

可以将事件代理添加到 ul 上,利用事件的冒泡来实现这一目的。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>demo</title>
  </head>
  <body>
    <ul id="list">
      <li>aaa</li>
      <li>bbb</li>
      <li>ccc</li>
    </ul>
    <script>
      document.querySelector('#list').addEventListener('click', function (e) {
        if (e.target.nodeName === 'LI') {
          e.target.parentNode.removeChild(e.target);
        }
      });
    </script>
  </body>
</html

继承

ES6 继承

归纳一下继承的种类和特性:

  • 原型链继承/原型式继承
    • 缺点:不能传参、引用对象共享
  • 构造函数继承/寄生式继承
    • 缺点:每次创建实例会执行一遍方法
  • 组合式继承->寄生组合式继承
    • 集合了两者优点,寄生组合式继承利用一个函数“隔离”父类和子类的联系,创建新实体代价较小。

ES6 继承就是寄生组合式继承的封装。

防抖/节流

主要就是设置一个 setTimeout 来延迟函数的执行。


HTML

图片懒加载

就是将图片的 src 定义为一张自定义图片的 src,然后将真实的地址放在一个自定义的属性标签里面,加载完成之后,给 windows.onload 绑定一个函数。

首先用 document.querySelectorAll 获得所有的图片元素,然后通过 window.innerHeight 获得视窗高度,通过 document.documentElement.scrollTop 获得滚轮隐藏的部分高度,当图片的 offsetTop 小于隐藏部分和视窗部分高度和的时候,将 src 替换回自定义的标签。


其他

MIME 类型

一般面试不会问到,但是会经常见到参数里面有,是描述消息内容类型的标准,写几个常见的:

  • html:text/html
  • css:text/css
  • js:application/x-javascript
  • jpg:image/jpeg