前端还是一个年轻的行业, 新的行业标准, 框架, 库都不断在更新和新增, 正如赫门在 2015 深 JS 大会上的前端服务化之路主题演讲中说的一句话:"每 18 至 24 个月, 前端都会难一倍", 这些变化使前端的能力更加丰富, 创造的应用也会更加完美. 所以关注各种前端技术, 跟上快速变化的节奏, 也是身为一个前端程序员必备的技能之一.
1. Doctype 作用? 标准模式与兼容模式各有什么区别?
(1), 声明位于位于 HTML 文档中的第一行, 处于 标签之前. 告知浏览器的解析器用什么文档标准解析这个文档. DOCTYPE 不存在或格式不正确会导致文档以兼容模式呈现.
(2), 标准模式的排版 和 JS 运作模式都是以该浏览器支持的最高标准运行. 在兼容模式中, 页面以宽松的向后兼容的方式显示, 模拟老式浏览器的行为以防止站点无法工作.
2.HTML5 为什么只需要写 ?
HTML5 不基于 SGML, 因此不需要对 DTD 进行引用, 但是需要 doctype 来规范浏览器的行为(让浏览器按照它们应该的方式来运行);
而 HTML4.01 基于 SGML, 所以需要对 DTD 进行引用, 才能告知浏览器文档所使用的文档类型.
3. 行内元素有哪些? 块级元素有哪些?
首先: CSS 规范规定, 每个元素都有 display 属性, 确定该元素的类型, 每个元素都有默认的 display 值, 如 p 的 display 默认值为 "block", 则为 "块级" 元素;
span 默认 display 属性值为 "inline", 是 "行内" 元素.
(1)行内元素有: a b span img input select strong(强调的语气)
(2)块级元素有: p ul ol li dl dt dd h1 h2 h3 h4...p
4. 页面导入样式时, 使用 link 和 @import 有什么区别?
(1)link 属于 XHTML 标签, 除了加载 CSS 外, 还能用于定义 RSS, 定义 rel 连接属性等作用; 而 @import 是 CSS 提供的, 只能用于加载 CSS;
(2)页面被加载的时, link 会同时被加载, 而 @import 引用的 CSS 会等到页面被加载完再加载;
(3)import 是 CSS2.1 提出的, 只在 IE5 以上才能被识别, 而 link 是 XHTML 标签, 无兼容问题;
5. 介绍一下你对浏览器内核的理解?
主要分成两部分: 渲染引擎 (layout engineer 或 Rendering Engine) 和 JS 引擎.
渲染引擎: 负责取得网页的内容(HTML,XML, 图像等等), 整理讯息(例如加入 CSS 等), 以及计算网页的显示方式, 然后会输出至显示器或打印机. 浏览器的内核的不
同对于网页的语法解释会有不同, 所以渲染的效果也不相同. 所有网页浏览器, 电子邮件客户端以及其它需要编辑, 显示网络内容的应用程序都需要内核.
JS 引擎则: 解析和执行 javascript 来实现网页的动态效果.
最开始渲染引擎和 JS 引擎并没有区分的很明确, 后来 JS 引擎越来越独立, 内核就倾向于只指渲染引擎.
6. 简述一下你对 HTML 语义化的理解?
用正确的标签做正确的事情.
html 语义化让页面的内容结构化, 结构更清晰, 便于对浏览器, 搜索引擎解析;
即使在没有样式 CSS 情况下也以一种文档格式显示, 并且是容易阅读的;
搜索引擎的爬虫也依赖于 HTML 标记来确定上下文和各个关键字的权重, 利于 SEO;
使阅读源代码的人对网站更容易将网站分块, 便于阅读维护理解.
7.HTML5 的 form 如何关闭自动完成功能?
给不想要提示的 form 或某个 input 设置为 autocomplete=off.
8. 如何在页面上实现一个圆形的可点击区域?
(1)map+area 或者 svg
(2)border-radius
(3)纯 js 实现 需要求一个点在不在圆上简单算法, 获取鼠标坐标等等
9.title 与 h1 的区别, b 与 strong 的区别, i 与 em 的区别?
title 属性没有明确意义只表示是个标题, H1 则表示层次明确的标题, 对页面信息的抓取也有很大的影响;
strong 是标明重点内容, 有语气加强的含义, 使用阅读设备阅读网络时: 会重读, 而是展示强调内容.
i 内容展示为斜体, em 表示强调的文本;
Physical Style Elements -- 自然样式标签
b, i, u, s, preSemantic Style Elements -- 语义样式标签
strong, em, ins, del, code 应该准确使用语义样式标签, 但不能滥用, 如果不能确定时首选使用自然样式标签.
10. 网页验证码是干嘛的, 是为了解决什么安全问题.
区分用户是计算机还是人的公共全自动程序. 可以防止恶意破解密码, 刷票, 论坛灌水;
有效防止黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试.
来源: https://www.2cto.com/kf/201806/757441.html