HTML
1.什么是 HTML ?
HyperText Markup Language:超文本标记语言,简称 HTML。是一种用于创建网页的标准标记语言。HTML 使文本更具交互性和动态性,是构建网站及 WEB 应用的基石。HTML允许嵌入图像、表格、链接。
HTML5 是公认的下一代 Web 语言,极大地提升了 Web 在富媒体、富内容和富应用等方面的能力,被喻为终将改变移动互联网的重要推手。Internet Explorer 8及以前的版本不支持。
常见实体:
2.HTML 、 XML 和 XHTML 有什么区别?
HTML:超文本标记语言(HyperText Markup Language)XML:可扩展标记语言(Extensible Markup Language)XHTML:可扩展超文本标记语言(Extensible Hypertext Markup Language)
XHTML 是当前 HTML 版的继承者,是 XML 文档中的 HTML。
HTML 和 XHTML 之间的区别:
HTML是一种标准通用标记语言的应用,XML是一种可扩展标记语言的应用程序。HTML标签不区分大小写XHTML所有标签都必须小写。XHTML所有属性都必须使用双引号。HTML是关于显示信息,而XHTML是关于描述信息。
3.如何理解 HTML 语义化?
两个方面:对人和对机器(搜索引擎)
- 对人:增加代码的可读性,让代码更容易维护
- 对机器:对搜索引擎更加友好,有利于 SEO
4.DOCTYPE 的作用?
DOCTYPE的作用是为了告诉浏览器该文件的类型,让浏览器解析器知道他们应该用哪个规范来解析文档;严格模式与混杂模式,可以根据Doctype的DDT声明区分;如果DDT是严格型就会以严格形式,呈现出来;如果DDT是过渡型,并且有URL地址,那么会依然会以严格型的去进行呈现;如果没有URL地址的话,就会以混杂模式的出现;如果写错,或者不写,都会进入混杂模式;HTML5 没有DTD,所以没有严格模式和混杂模式的区分,他们的意义就是解析HTML的速度快,不易出错。
5.对meta标签的了解?
meta 标签由 name 和 content 属性定义,用来描述网页文档的属性,比如网页的作者,网页描述,关键词等,除了HTTP标准固定了一些name作为大家使用的共识,开发者还可以自定义name。
常见的meta标签:
charset:用来描述HTML文档的编码类型keywords:页面关键词description:页面描述refresh:页面重定向和刷新viewport:适配移动端,可以控制视口的大小和比例
其中,content 参数有以下几种:
width viewport:宽度(数值/device-width)height viewport:高度(数值/device-height)initial-scale:初始缩放比例maximum-scale:最大缩放比例minimum-scale:最小缩放比例user-scalable:是否允许用户缩放(yes/no)
6.HTML 全局属性(global attribute)有哪些?
class:为元素设置类标识data-*:为元素增加自定义属性draggable:设置元素是否可拖拽id:元素id,文档内唯一lang:元素内容的的语言style:行内css样式title:元素相关的建议信息
7.浏览器页面有哪三层构成,分别是什么,作用是什么?
- 浏览器页面构成:结构层、表示层、行为层
- 分别是:HTML、CSS、JavaScript
- 作用:HTML实现页面结构,CSS完成页面的表现与风格,JavaScript实现一些客户端的功能与业务
8.HTML5 的 form 如何关闭之前输入记录的提示功能?
设置 form 输入框的 autocomplete 为 on 或者 off 来开启或关闭输入框的历史记录提示功能。
9.什么是iframe?
iframe是嵌入式框架, 是html标签, 是一个内联元素, iframe 元素会创建包含另外一个文档的内联框架(即行内框架) 。通常可以使用iframe内嵌网页,跨域ajax通讯的实现,微前端,广告嵌入等。
CSS
1.选择器优先级是怎样的?
!important > 行内样式 > id 选择器 > 类选择器 > 标签选择器 > 通配符 > 继承
JavaScript
1.script标签中的defer和async的区别?
script:会阻碍 HTML 解析,只有下载好并执行完脚本才会继续解析 HTML。async script:解析 HTML 过程中进行脚本的异步下载,下载成功立马执行,有可能会阻断 HTML 的解析。defer script:完全不会阻碍 HTML 的解析,解析完成之后再按照顺序执行脚本。
2.JS中一共有几种数据类型?
八种数据类型:
- 七种基本数据类型(值类型):
String字符串、Number数值、BigInt大型数值、Boolean布尔值、Null空值、Undefined未定义、Symbol。 - 一种引用数据类型(引用类型):
Object对象。
注:内置对象 Function、Array、Date、RegExp、Error 等都是属于 Object 类型。也就是说,除了那七种基本数据类型之外,其他的,都称之为 Object 类型。
BigInt 和 Symbol 是ES6中新增的类型。
3.数据类型之间的区别?
- 基本数据类型:参数赋值的时候,传数值。
- 引用数据类型:参数赋值的时候,传地址。
4.前置自增(自减)和后置自增(自减的区别)?
- 前置自增(自减):先自加,后返回值。
- 后置自增(自减):先返回原值,后自加。
- 如果单独使用,效果是一样的。
5.比较运算符?
| 标题 | 说明 | 案例 | 结果 |
|---|---|---|---|
| < | 小于号 | 1 < 2 | true |
| 大于号 | 1 > 2 | false | |
| <= | 小于等于号 | 2 <= 2 | true |
| >= | 大于等于号 | 3 >= 5 | false |
| == | 判等号(会转型,隐式转换) | 5 == 5 , 5 == '5' | true , true |
| != | 不等号 | 5 !=5 | false |
| === , !== | 全等,要求值和数据类型都一致 | 5 === 5 , 5 === '5' | true , false |
6.逻辑运算符?
| 逻辑运算符 | 说明 | 案例 |
|---|---|---|
| && | 逻辑与,简称 “与” and | true && false |
| ll | 逻辑或,简称 “或” or | true ll false |
| ! | 逻辑非,简称 “非” not | !true |
7.赋值运算符?
| 赋值运算符 | 说明 | 案例 |
|---|---|---|
| = | 直接赋值 | var userName = '我是值'; |
| +=、-= | 加、减一个数后再赋值 | var age = 10; age+=5; //15 |
| *=、/=、%= | 乘、除、取模后再赋值 | var age = 2; age*=5; //10 |
8.运算符优先级?
| 优先级 | 运算符 | 顺序 |
|---|---|---|
| 1 | 小括号 | () |
| 2 | 一元运算符 | ++ ; -- ; ! |
| 3 | 算数运算符 | 先 *; / ; % 后 +; - |
| 4 | 关系运算符 | >; >=; <; <= |
| 5 | 相等运算符 | ==; !=; ===; !== |
| 6 | 逻辑运算符 | 先 && 后 ll |
| 7 | 赋值运算符 | = |
| 8 | 逗号运算符 | , |