JS篇
let 与 var 区别
var 会导致变量声明提升,没有局部作用域
var 会导致声明覆盖
Promise 构造函数是同步还是异步的? .then()是同步还是异步的?
Promise 是同步的
then 是异步的
涉及事件循环、微任务和宏任务
首先任务丢到浏览器中的话会有一个事件队列
它会先执行宏任务,然后执行宏任务里面的微任务
深拷贝和浅拷贝的区别
一般针对引用类型,虽然基本数据类型也可以深拷贝,但其实际就是赋值操作
拓展运算符用作解构赋值的话,针对一维数组是深拷贝,但是有嵌套数组则变成浅拷贝
BOM和 DOM区别
BOM是浏览器对象模型
没有官方命名和统一标准,只是对浏览器api的统称
它提供的api都放在window全局对象中,它代表当前浏览器窗口
DOM 是文档对象模型,以对象形式呈现页面文档,可以使用JS创建、选择、修改DOM元素,处理DOM事件等
我们常见的页面文档就是html页面,在内存中表现为document 对象
一个是控制浏览器行为的api,一个是页面结构api
BOM相关:
history 属性是html5新增的
history.pushState()和history.back()是相对应的,相当于入栈和出栈操作
back也可以用浏览器后退按钮替换
hash和history都可以用作改变url,然后页面不会整体刷新去请求服务器,而是在客户端做router映射
注意:history.replaceState()浏览器不可以点击回退按钮
注意:history.go(-1)相当一次history.back()
history.go(-2)相当两次history.back()
history.go(1)相当于一次history.forward()
而DOM也属于BOM的一部分,因为window也包括了document对象
DOM相关:
html是静态的页面,只能提供内容的静态展示,不能动态地修改或处理事件,而使用DOM提供的属性和方法,就可以通过编写JS来操作DOM实现动态的功能
常见DOM类型:
document、nodeList、ELement。。。
1.题目:
函数meili和mogu执行后,控制台的输出值分别为
meili, TypeError: mogu is not a function
解析:
2.题目:
解析:
3.题目:
解析:
4.眼熟:
5.眼熟:
6.题目:
编写一个js函数,传入一个非空字符串,计算出现次数最多的字符,返回该字符及 出现次数,结果可能包含多个字符。如传入“xyzzyxyz”,则返回:{y:3, z:3}
算法篇
html篇
img标签的:alt和title同时设置的时候,alt作为图片的替代文字出现,title是图片的解释文字
CSS篇
margin 和 padding 区别
padding 是施加于自身的:内边距
margin 是施加于外部的:外边距
vw 和百分比 区别
继承关系不同:
百分比继承父级的宽度
vw 只和浏览器视窗宽度有关,50vw永远只占视窗一半
如何让谷歌浏览器支持比12px还小的字体(谷歌浏览器默认最小为12px)
在该文本上添加样式:transform:scale(0.5)