掘友等级
获得徽章 12
#每天一个知识点#
异步编程的实现方式:回调函数、Promise、generator的方式、async函数
#每天一个知识点#
实现浏览器内多个标签页之间的通信的方式:WebSocket、SharedWorker、也可以调用localstorge、cookies等本地存储方式
js判断一个变量是不是数组的几种方法?
使用 Array.isArray 判断,如果返回 true, 说明是数组
使用 instanceof Array 判断,如果返回true, 说明是数组
使用 Object.prototype.toString.call 判断,如果值是 [object Array], 说明是数组
通过 constructor 来判断,如果是数组,那么 arr.constructor === Array. (不准确,因为我们可以指定 obj.constructor = Array)
#每天一个知识点#
css中伪元素和伪类的区别和作用?
伪元素:在内容元素的前后插入额外的元素或样式,但是这些元素实际上并不在文档中生成。它们只在外部显示可见,但不会在文档的源代码中找到它们,因此,称为“伪”元素。例如::before、:after、:first-line等等
伪类:将特殊的效果添加到特定选择器上。它是已有元素上添加类别的,不会产生新的元素。例如::hover、:fitst-child、:nth-child等等
伪类是通过在元素选择器上加⼊伪类改变元素状态,⽽伪元素通过对元素的操作进⾏对元素的改变。
#每天一个知识点#
js中的事件机制:
3个阶段:事件捕获阶段、处于目标阶段、事件冒泡阶段
事件捕获:通俗的理解就是,当鼠标点击或者触发dom事件时,浏览器会从根节点开始由外到内进行事件传播,即点击了子元素,如果父元素通过事件捕获方式注册了对应的事件的话,会先触发父元素绑定的事件。
事件冒泡:与事件捕获恰恰相反,事件冒泡顺序是由内到外进行事件传播,直到根节点。
vue3中的watchEffect感觉多少有点鸡肋呀
#每天一个知识点#
web常见的攻击方式:
XSS (Cross Site Scripting) 跨站脚本攻击
CSRF(Cross-site request forgery)跨站请求伪造
SQL注入攻击
#每天一个知识点#
new操作符的实现原理
(1)首先创建了一个新的空对象
(2)设置原型,将对象的原型设置为函数的 prototype 对象。
(3)让函数的 this 指向这个对象,执行构造函数的代码(为这个新对象添加属性)
(4)判断函数的返回值类型,如果是值类型,返回创建的对象。如果是引用类型,就返回这个引用类型的对象。
#每天一个知识点#
移动端上禁用Webkit内核浏览器的文字大小调整功能:-webkit-text-size-adjust: none;
下一页