8月更文挑战 | 前端HTML面试题汇总

287 阅读6分钟

这是我参与8月更文挑战的第2天,活动详情查看:8月更文挑战

话不多说,直接进入主题

1.H5新特性

  • 语义化标签:headernavfooterarticlesectionaside
  • 媒体标签:videoaudiosource
  • 表单类型(type):emailurlnumbersearchrangecolortimedatedatetimedatetime-localweekmonth
  • 表单属性:placeholderautofocusautocompleterequiredpatternmultipleform

2.对标签语义化的了解

  • 简而言之,就是用正确的标签来做正确的事。标签的语义化让标签更加简单易懂,让人一眼就能知道这个标签是用来做什么的。

允许使用拖动:draggable=true

为什么使用语义化标签:

  • 可读性更高
  • 更易于SEO

3.H5 Drag API

针对被拖拽元素的事件:

  • ondrag:正在拖动元素时的事件(持续触发)
  • ondragstart:开始拖动元素时的事件
  • ondragend:结束拖动元素时的事件
  • ondragleave:鼠标离开拖动元素时的事件

针对拖拽元素到达目标的事件(针对目标的事件):

  • ondragenter:被拖拽元素进入目标元素时的事件
  • ondragover:被拖拽元素停留在目标元素上时的事件(持续触发)
  • ondrop:被拖拽元素在目标元素上松开鼠标时的事件
  • ondragleave:鼠标离开拖动元素时的事件

4.mouse类相关事件

  • mouseover:鼠标移动到目标元素内(包括子元素)时触发(有冒泡
  • mouseenter:鼠标移动到元素上时触发(无冒泡
  • mouseout:鼠标移出目标元素或关闭了子元素时触发(有冒泡
  • mouseleave:鼠标移出元素时触发(无冒泡

5.href与src的区别

原理:

  • src是表示对资源引用src指向的内容会被下载嵌入到当前标签所在位置
  • href是表示超文本引用href通常指向网络资源,并建立起指向资源当前文档之间的链接关系 处理方式:
  • src会在浏览器解析到该元素时暂停其他资源的下载与处理,直到该元素资源下载、编译、执行结束后才继续其他任务(如Js脚本的src,因此Js脚本的引用一般放在底部
  • href在浏览器解析到该元素时会与其他任务并行下载不会停止对当前文档的处理

6.img中alt与title的区别

  • alt:当网速缓慢或出现其他错误,导致图片无法正常显示时,则会显示出alt中设置的文字
  • title:当鼠标移动至图片上方时,会显示出title中设置的文字

7.行内元素、块级元素、空元素

  • 行内元素:abspanimginputtextarealablebuttonselectsmallstrong
  • 块级元素:dldtddulliolpdivh1-h6sectionasidearticlevideoaudio
  • 空元素:brhrimginputlinkmetaarea

主要记忆:

  • 行内元素:abspanimginputtextareaselect
  • 块级元素:dldtddulliolpdivh1-h6
  • 空元素:brhrimginputlinkmetaarea

8.meta标签

meta标签用于提供页面的元信息,如针对搜索引擎的关键词、描述、版权信息等

meta标签的两个属性:

  • http-equiv
  • name

meta标签的两个属性又分别有不同的参数

  1. name属性:
    • 使用方法:
        <meta name="参数" content="具体的描述">
    
    • 关键字:keywords(告诉搜索引擎你的网页关键字)
        <meta name="keywords" content="小说,日志">
    
    • 描述:description(网站内容的描述)
        <meta name="description" content="这是一个发布小说和个人日志的网站">
    
    • 视口:viewport重要),常用于设计移动端的网页
        <meta name="viewport" content="width=device-width, initial-scale=1">
    
    • 索引方式:robots(用于告诉搜索引擎爬虫哪些页面需要被索引,常用contentallnoneindexnoindexfollownofollow
        <meta name="robots" content="none">
    

个人认为,在name属性中,常问到的参数有:viewportkeywordsdescriptionrobots(此外name属性中还有authorgeneratorcopyrightrevisit-afterrenderer参数,感兴趣的可以自己去看,推荐一篇文章:《HTML meta标签总结与属性使用介绍》——b0

  1. http-equiv属性:
    • 使用方法:
        <meta name="参数" content="具体的描述">
    
    • 字符集设定:content-Type
        <!-- 以下两种写法等价 -->
        <meta charset="utf-8"> <!-- H5写法 -->
        <meta http-equiv="content-Type" content="text/html;charset=utf-8"> <!-- HTML写法 -->
    
    • 浏览器渲染版本:X-UA-Compatible
        <!-- 指定IE和Chrome使用最新版本渲染当前页面 -->
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
    

此外,还有refresh(自动刷新)Cache-Control(缓存)expires(网页到期)Set-Cookie(Cookie设置)等参数

9.meta标签中的viewport

meta标签中的viewport可用来解决移动端的适配问题

  • 不设置viewport时,默认视口宽度为960
  • 设置了viewport,只配置了width而不配置initail-scale时,视口宽度默认为width
  • 设置了viewport,只配置了initail-scale而不配置width时,可根据initail-scale值获取视口宽度(initial-scale = 屏幕宽度/视口宽度
  • 设置了viewport,并同时配置了initail-scalewidth时,视口宽度为width值,页面按照initail-scale进行比例缩放
  • 常用的配置如下代码:
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    

下面放一个表格,是viewportcontent内的附加值,来源MDN

image.png

image.png

10.什么标签可以在head标签内

<title><meta><style><script><noscript><link><base>

11.iframe的优缺点

  1. 优点
    • 能够完整展示嵌入的网页
    • 增加代码的可重用
    • 可用来加载第三方资源
    • 页面更改方便
  2. 缺点
    • 产生多个页面,不便管理
    • 页面过多可能会出现滚动条,降低用户体验
    • 不利于SEO
    • 兼容性不够好,移动端可能无法正常显示
    • 导致http请求增加,加重服务器负担

12.DOCTYPE有什么作⽤?严格模式与混杂模式是什么?怎么区分?

  • <!DOCTYPE>声明称为文件类型定义,也叫DTD,目的是为了告诉浏览器这个文件的类型,让浏览器知道该以什么规范来解析这个文件。并且,<!DOCTYPE>声明必须写在HTML文档的第一行。

  • 严格模式(也称标准模式):将文件按照W3C标准进行解析

  • 混杂模式(也称怪异模式、兼容模式):用浏览器自己的方式(向后兼容)进行文档解析,通常模拟老式浏览器的行为,保证老式站点的正常工作

区分(根据DTD判断):

  1. 严格模式
    • 严格DTD
    • URI的过渡DTD
  2. 混杂模式
    • URI的过渡DTD
    • 不存在DTDDTD格式不正确

注意:H5中没有严格模式与混杂模式之分

13.渐进增强和优雅降级

  • 渐进增强:一开始针对低版本浏览器进行设计,保证基本功能的正常使用,之后再针对高级浏览器进行效果、交互等方面进行改进和功能追加
  • 优雅降级:一开始直接构建完整的功能,再针对低版本浏览器进行兼容
  • 区别:渐进增强是由简到繁,而优雅降级是从高到低

14.浏览器乱码的原因以及解决方案

浏览器乱码原因:

  • 网页源代码编码与网页内容编码有冲突(如:一个为gbk、一个为utf-8
  • 网页编码与从数据库中调出的数据编码有冲突
  • 浏览器无法自动检测网页编码

解决方案:

  • 开发时确定编码是否有冲突
  • 若有冲突,则需要转码
  • 在浏览器中做调整进行编码转换

15.Web Worker

Web Worker可以通过API主线程之外的另外一个线程中运行Javascript程序,实现真正的并行,在主线程运行的同时,Web Worker线程也在后台同时执行任务,互不干扰

用途:Web Workerwoker线程可用来进行高延迟耗时长的任务,最后再将结果返回至主线程,大大地节省时间与资源。

推荐一篇文章:《前端er来学习一下webWorker吧》——OBKoro1

最后

目前看到的频率比较高的就这么多,之后有看到其他的内容再补充进来,如果有写得不对的地方,敬请斧正,感谢 ^_^

——(完)