一、语义化标签有那些(至少说出5种)

  • header:头部区域
  • footer:尾部区域
  • nav:导航部分
  • section:文档某一节
  • main:内容区域
  • canvas:绘制图形
  • audio:音频
  • video:视频

二、CSS 选择器有哪些,选择器权重计算方法

通用选择器、元素选择器、类选择器、ID选择器、属性选择器、伪类(:hover)、伪元素(:first-child),子选择器、相邻选择器

权重:Important > Style行内(1000) > ID选择器(100) > 类选择器(10) > 标签选择器(1) > 通用选择器(*)、子选择器(>)、相邻选择器(+)(0)

三、call,apply,bind 有什么区别和应用场景

相同点:都可以改变函数内部this指向问题
区别

  1. call 和 apply 会调用函数,并且改变函数内部 this 指向
  2. call 和 apply 传递的参数不同,call 传递参数形式为 aru1,aru2…….apply 传递的参数为数组形式(这个数组在执行函数时会改变为字符串或数字)
  3. bind 不会调用函数,可以改变函数内部 this 指向
    1. // call,apply,bind传参
    2. call(this, 参数1, 参数2, 参数3…)
    3. apply(this, [参数1, 参数2, 参数3…])
    4. bind(this, 参数1, 参数2, 参数3…)

应用场景

  1. call主要用于继承
  2. apply 经常跟数组有关系,比如借助Math内置对象实现求数组最大最小值问题
  3. 不调用函数,又想改变函数内部this指向 比如 定时器之类的问题