一、为什么HTML5只需要写<!DOCTYPE HTML>就可以?
因为 HTML5 与 HTML4 基于的基准不同。HTML4 基于 SGML 因此需要除了 DOCTYPE
外还需要引入 DTD 来告诉浏览器用什么标准进行渲染。DTD 还分为标准模式、严格模式。如果什么都不写,就完全让浏览器自我发挥,会变成怪异模式。
HTML5 不基于 SGML,因此后面就不要跟 DTD,但是需要 DOCTYPE
来规范浏览器的渲染行为。
注:SGML 是通用标记语言的集合。其中有 HTML、XML,因此需要用 DTD 来指定使用那种规范。
二、position:fixed;在ios下无效该怎么办?
https://blog.csdn.net/zyg1515330502/article/details/79207334
三、什么是闭包?优缺点分别是什么?
最简单的两个闭包例子
// 闭包1(function(a){console.log(a) // 1})(1)
// 闭包2function fn(){var a = 2return function(){console.log(a) // 2}}fn()()
闭包:可以访问另一个函数作用域的函数。由于 javascript
的特性,外层的函数无法访问内部函数的变量;而内部函数可以访问外部函数的变量(即作用域链)
闭包:在局部作用域引用上层作用域(非全局)的变量
优点:隐藏变量以及防止变量被篡改和作用域的污染,从而实现封装
缺点:由于保留了作用域链,会增加内存的开销。因此需要注意内存的使用,并且防止内存泄露的问题
// 闭包3function fn1() {var b1 = 1var c1 = 2// 这个函数就是个闭包,可以访问外层 a 函数的变量return function() {var d1 = 3return b1 + c1 + d1}}console.log(fn1()()) // 6console.log(b1, c1, d1) // b1 is not defined
四、你最喜欢用哪些编辑器?喜欢它的理由是什么?
vscode个人非常喜欢,开源/免费就不说了,它的代码风格主题非常nice,不装插件是一个很舒服的编辑器,装了很多插件之后,就变成了很强的IDE,推荐使用vscode/webstorm,webstorm体积比较大,但是提示做的非常好,代码风格也比较nice,但是收费,需要购买/破解,所以这一点不太好