面试题汇总 如何区分伪元素和伪类 伪元素和伪类最根本的区别就在于是否创造了新的元素 伪类伪类是用来定义元素特殊状态的,他可以用来设置鼠标悬停样式、元素获取焦点样式、设置链接样式等。如常见的 hover、active、link 等都是伪类。 伪元素伪元素也称为伪对象,它不存在于 DOM 文档中、是一个虚拟的元素。它可以用来代表某个元素的子元素,但是这个子元素并不存在于文档树中。 BFC(Block firm 2023-06-14 前端 面试
Electron入门 //ready:app 初始化完成 dom-ready:一个窗口中的文本加载完成 did-finish-load:导航完成时触发 window-all-closed:所有窗口都被关闭时触发 before-quit:在关闭窗口之前出发 will-quit:在窗口关闭并且应用退出时触发 quit:当所有窗口被关闭时触发 closed:当窗口关闭时触发,此时应删除窗口引用 123456789101112 2023-06-07 前端 Electron
Vue的虚拟DOM Vue的渲染机制 Vue 是如何将一份模板转换为真实的 DOM 节点的,又是如何高效地更新这些节点的呢? 虚拟DOMVDOM(其实就是一个对象)是一种编程概念,意为将目标所需的 UI 通过数据结构“虚拟”地表示出来,保存在内存中,然后将真实的 DOM 与之保持同步。 123456789const vnode = { type: 'div', props: 2023-06-07 前端 Vue
Promise的基本知识 PromisePromise 是 ES6 新出的一个类,因为 js 是单线程的,为了加快性能,提出了异步这个方法,Promise 只接受一个函数,它由两个参数 resolve,reject Promise 的一些优点: 可以链式调用,解决回调地狱 Promise 里面是同步调用的,then 里面才是微任务 Promise 有三个状态:Pending , resolved(fulfilled),r 2023-03-27 前端 基础知识点
渲染引擎的执行原理 渲染引擎的执行原理 我们输入URL按下回车,发生了什么? 主进程中的UI线程会判断输入框中的是Query还是URL,如果是URL,则通知网络进程处理,网络进程是负责发送请求和接收响应的; UI线程得到网络进程返回的数据后,包装成渲染任务放入任务队列中,渲染进程的主线程开始渲染任务; 什么是浏览器的渲染? 首先拿到的数据是一个 HTML字符串 –> 渲染 –> 像素信息( 2023-03-01 前端 基础知识点
原型链 理解 new 关键字的作用机制 理解 [[GET]] 对象有隐式原型,而函数有显示原型 隐式原型是指向显示原型的,然后一直递归下去,直到为null 就会返回undefined new 关键字的作用机制1.执行前 1.绑定this为空对象 2.让空对象[[Prototype]] –> 函数的 prototype属性 2.1 所有对象都有[[Prototype]] (__proto__) 2023-02-28 前端 基础知识点
变量的本质和垃圾回收 12345678910111213var b1 =1 , b2 = b1;b2 =2 ; //RHS right hand search 右查询读的是内存中的值//由于基本类型是不可修改的,所以这里是先申请了栈里的一块空间,然后赋值为2,然后b指向那个新的地址,旧地方的地址会被垃圾回收给清除掉console.log(b1,b1); // 1 2var r1 = { 2023-02-27 前端 基础知识点
回流与重绘 回流与重绘回流必定引起重绘,重绘不一定引起回流 在HTML中,每个元素都可以理解成一个盒子,在浏览器解析过程中,会涉及到回流与重绘。 回流:布局引擎会根据各种样式计算每个盒子在页面上的大小与位置。 在页面初始渲染阶段,回流不可避免的触发,可以理解成页面一开始是空白的元素,后面添加了新的元素使页面布局发生改变。 当渲染树的一部分因为元素的规模尺寸、布局、隐藏等改变需要重新构建的操作,会影响布局的操作 2023-02-23 前端 基础知识点
面试题 1.HTML1.src 和 href 的区别src 和 href 都是用来引用外部的资源,它们的区别如下: src: 表示对资源的引用,它指向的内容会嵌入到当前标签所在的位置。src 会将其指向的资源下载并应⽤到⽂档内,如请求 js 脚本。当浏览器解析到该元素时,会暂停其他资源的下载和处理,直到将该资源加载、编译、执⾏完毕,所以⼀般 js 脚本会放在页面底部。 href: 表示超文本引用,它指 2023-02-22 前端
深拷贝和浅拷贝 因为对象是引用类型,是存放在堆中的,栈中存着它的标识符,也就是对象在堆中的地址。 浅拷贝是创建一个新对象,这个对象有着原始对象属性值的一份精确拷贝。如果属性是基本类型,拷贝的就是基本类型的值,如果属性是引用类型,拷贝的就是内存地址(也就是说第一层是拷贝的值,第二层之后拷贝的都是地址) ,所以如果其中一个对象改变了这个地址,就会影响到另一个对象。 深拷贝是将一个对象从内存中完整的拷贝一份出来,从堆内 2023-02-22 前端