- 博客(25)
- 收藏
- 关注
原创 2024.02.20
渲染进程:index.html页面运行在渲染进程,创建一个窗体就会创建一个渲染进程,每个web页面运行在自己的渲染进程中,每个渲染进程是独立的。消息从主进程发到渲染进程时,需要知道是哪一个渲染进程,消息需要通过其webcontents实例发送到渲染进程,此实例包含一个send方法,使用方法和ipcRenderer.send相同。由于主进程和渲染进程有着完全不同的分工,Electron 应用通常使用预加载脚本来设置进程间通信 (IPC) 接口以在两种进程之间传输任意信息。4. 渲染进程–>渲染进程。
2024-02-29 22:47:44
814
原创 2024.02.05
通过监听servicework的 fetch 事件来拦截网络请求,调用 event 上的 respondWith() 方法来劫持当前servicework控制域下的 HTTP 请求,该方法会直接返回一个Promise 结果 ,这个结果就会是http请求的响应。Cache Stroage 中的缓存不会过期,但是浏览器对它的大小是有限制的,所以需要我们定期进行清理。使用serviceWorker拦截获取新版本的接口,通过接口返回数据中的版本号,缓存相对应的入口html文件,便于下次访问。/* 容器背景色 */
2024-02-17 20:42:29
1604
原创 2023.12.07
组件间传值对于多层嵌套过于麻烦,vuex就是把组件共享状态抽取出来以一个全局单例模式管理,把共享的数据函数放进vuex中,任何组件都可以进行使用。跨域,是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略(协议、域名、端口号)造成的,是浏览器对JavaScript实施的安全限制。插槽在vue中是一种很常见的写法,让父组件可以向子组件指定位置插入html结构,也是一种组件间通信的方式。
2023-12-10 21:48:12
1498
原创 2023.11.30
promise中的resolve() 这个调用,作用是将 Promise 的状态从 pending 置为 fulfilled,这个新状态会让 Promise 知道“我的 then 方法中那个任务可以执行了”——注意是”可以执行了“,而不是说”立刻就会执行“。
2023-12-02 16:17:39
358
原创 JS事件循环Event Loop
在浏览器的事件循环中,首先大家要认清楚 3 个角色:函数调用栈、宏任务(macro-task)队列和微任务(micro-task)队列。常见的 macro-task 比如: setTimeout、setInterval、 setImmediate、 script(整体代码)、I/O 操作等。常见的 micro-task 比如: process.nextTick、Promise、MutationObserver 等注意:script(整体代码)它也是一个宏任务;此外,宏任务中的 setImmediate
2020-09-10 11:00:47
96
原创 JS异步
异步在实现上,依赖一些特殊的语法规则。从整体上来说,异步方案经历了如下的四个进化阶段:回调函数 —> Promise —> Generator —> async/await。1、promisePromise 会接收一个执行器,在这个执行器里,我们需要把目标的异步任务给”填进去“。在 Promise 实例创建后,执行器里的逻辑会立刻执行,在执行的过程中,根据异步返回的结果,决定如何使用 resolve 或 reject 来改变 Promise实例的状态。 Promise 实例有三种状
2020-09-08 11:18:10
143
原创 JS执行上下文与调用栈
1、执行上下文的分类执行上下文主要分为三类:全局上下文 —— 全局代码所处的环境,不在函数中的代码都在全局执行上下文中函数上下文 —— 在函数调用时创建的上下文Eval 执行上下文 —— 运行 Eval 函数中的代码时所创建的环境2、全局上下文的创建和组成当我们的 JS 脚本跑起来之后,第一个被创建的执行上下文就是全局上下文。当我们的脚本里一行代码也没有的时候里,全局上下文里会比较干净,只有两个东西:1.全局对象(浏览器里是 Window, Node 环境下是 Global)2.this
2020-09-07 20:59:11
185
原创 JS this指向问题
作用 & 意义this关键字具有一种指向作用,类似于指针的作用,可以为你的变量或方法提供一个指向。a.如果是一般函数,this指向全局对象window;b.在严格模式下"use strict",为undefined.c.对象的方法里调用,this指向调用该方法的对象.d.构造函数里的this,指向创建出来的实例.多数情况下,this 指向调用它所在方法的那个对象。当调用方法没有明确对象时,this 就指向全局对象。在浏览器中,指向 window;在 Node 中,指向 Global。(
2020-09-03 17:05:13
148
原创 JS内存管理机制
基本类型和引用类型JS 中的数据类型,整体上来说只有两类:基本类型和引用类型。其中基本类型包括:Sting、Number、Boolean、null、undefined、Symbol。这类型的数据最明显的特征是大小固定、体积轻量、相对简单,它们被放在 JS 的栈内存里存储。而排除掉基本类型,剩下的数据类型就是引用类型,比如 Object、Array、Function 等等。这类数据比较复杂、占用空间较大、且大小不定,它们被放在 JS 的堆内存里存储。栈是线性表的一种,而堆则是树形结构。垃圾回收机制
2020-09-03 10:25:01
371
原创 JAVASCRIPT闭包
一、JS编译原理var name = 'huiru'编译阶段:这时登场的是一个叫 编译器 的家伙。编译器会找遍当前作用域,看看是不是已经有一个叫 name 的家伙了。如果有,那么就忽略 var name 这个声明,继续编译下去;如果没有,则在当前作用域里新增一个 name。然后,编译器会为引擎生成运行时所需要的代码,程序就进入了执行阶段执行阶段:这时登场的就是大家常常听到的 JS 引擎 了。JS 引擎在执行代码的时候,仍然会找遍当前作用域,看看是不是有一个叫 name 的家伙。如果能找到,那
2020-09-02 21:19:10
89
原创 JAVASCRPT继承方法
一、原型链继承// 原型链继承 function Person(){ this.name = 'huiru'; } Person.prototype.getName = function(){ console.log(this.name); } function Child(){ } Child.prototype = new Perso
2020-09-01 17:08:54
108
原创 JAVASCRIPT原型与原型链
一、普通对象与函数对象凡是通过 new Function() 创建的对象都是函数对象,其他的都是普通对象。二、构造函数实例的构造函数属性(constructor)指向构造函数。若person1 和 person2 都是构造函数 Person 的实例,则这两个实例都有一个 constructor (构造函数)属性,该属性(是一个指针)指向 Person。三、原型对象在 JavaScript 中,每当定义一个对象(函数也是对象)时候,对象中都会包含一些预定义的属性。其中每个函数对象都有一个protot
2020-09-01 11:24:13
101
原创 JAVASCRIPT常用位运算
1.取整// 异或运算取整::位运算只对整数有效,遇到小数时,会将小数部分舍去,只保留整数部分。//所以,将一个小数与0进行或运算,等同于对该数去除小数部分,即取整数位。12.9 ^ 0 // 12-12.9 ^ 0 // -12// 双否定位操作符取整~~4.9 // 4~~(-4.9) // -4// 左移0位,就相当于将该数值转为32位整数,等同于取整,对于正数和负数都有效。13.5 << 0 // 13-13.5 << 0 // -13// 或运算
2020-08-31 11:09:37
222
原创 JAVASCRIPT数据类型判断
JS基本数据类型String、Number、Boolean、Null、Undefined、Symbol(ES6)、Object其中分为基本数据类型和引用数据类型:基本数据类型:String、Number、boolean、null、undefined引用数据类型:Object。里面包含的 function、Array、Date。判断数据类型一般有四种方法:1....
2020-08-31 10:49:55
116
原创 JAVASCRIPT 装箱 / 拆箱 & 类型转换
众所周知,object类型才有方法,但基本类型也可以调用方法,比如toString()、toFixed(),这就涉及到了JavaScript的装箱。装箱的概念:把基本类型转化为相应的对象。而装箱又分为显式与隐式。隐式装箱:1.读取基本类型的值,后台创建一个临时的该基本类型所对应的对象。2.对基本类型调用方法,实际是在该基本类型的对象上调用方法。3.执行方法后该对象立马销毁。显式装箱:用内置对象例如Number、Boolean、String、Object等 对基本类型进行显式装箱。拆箱的概念:
2020-08-28 16:37:50
367
原创 JAVASCRIPT常用设计模式
单例模式单例模式的定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。实现的方法为先判断实例存在与否,如果存在则直接返回,如果不存在就创建了再返回,这就确保了一个类只有一个实例对象。适用场景:一个单一对象。比如:弹窗,无论点击多少次,弹窗只应该被创建一次。因为单体模式是只实例化一次,所以下面的实例是相等的。class CreateUser { constructor(name) { this.name = name; this.getName();
2020-08-28 15:48:12
64
原创 8.14腾讯前端一面
跟我约面试的面试官临时开会去了,就换了个小哥1.主要是针对简历里写的两个项目进行考察,遇到的问题,印象深刻的操作什么的,简历里写的1px,300ms延迟等问题,有没有考虑过为什么会遇到这样的问题2.布局相关,flex布局的一些问题3.http七层模型4.三次握手5.一个盒子包裹A,B俩元素,用flex实现A占20%,B占80%6.flex布局的优缺点7.为啥选那俩项目做没问太多问题,主要是针对项目问一问,问了些基本情况,刚好面试官也是通信的,问我是不是想走互联网,不走通信了;针对一些问题给
2020-08-14 11:01:42
130
原创 8.13成都研究院前端一面
1.自我介绍2.仿写天猫网站的项目遇到哪些问题,公共页面如何实现的,如何将公共页面引入其他各个页面,除了直接写入代码还有什么别的方法3.图片预处理是为了什么4.能在网页上浏览到你设计的天猫网站吗? 不能5.天猫网站的浏览器兼容问题是如何解决的6.仿写的移动端去哪儿网页用的是touch还是click,为什么不用touch7.讲解一下这个移动端网页的设计,你是如何做的8.1px边框和300ms延迟点击事件是如何解决的9.说一下http10.http的缓存策略,状态码,304是什么11.es6
2020-08-13 18:14:17
136
原创 8.11作业帮hr面
对前两次面试官的评价,他们的面试侧重点是什么为什么做前端做过最自豪的事情是什么还投了哪些公司如何选择地区很多问题都不太记得了,hr小哥声音太太太太温柔了,我爱了????
2020-08-11 20:36:54
478
原创 8.5作业帮前端二面
1.自我介绍2.vue的优点3.还知道哪些框架4.如何解决浏览器适配问题5.MVVM模型(问的很详细)6.闭包的理解,闭包的优点7.知道哪些设计模式8.js的几种继承方式9.事件循环机制10.代码一:链表倒数第N个(改成递归怎么写)11.代码二:两个字符串A,B,判断A是否是B的子串,不能使用高级api12.最近看了什么书13.职业规划...
2020-08-05 12:10:34
779
原创 7.23作业帮前端一面
没有自我介绍,直接开始了1.http的请求方法有哪些?get和post的区别2.tcp三次握手3.同源策略,跨域方法有哪些,postMessage需要经过服务器吗?4.vue生命周期5.css3的一些东西6.promise函数和promise的一道题目7.箭头函数8.对闭包的理解9.原生ajax了解吗10.XSS攻击知道吗?11.AABBCC变成ABC,用正则的replace方法12.伪类,css选择器,兄弟选择器13.数组的方法有哪些?14.文字当选中checkbox时如何将文
2020-08-03 22:57:53
386
原创 你不知道的JAVASCRIPT:this和对象原型
this 实际上是在函数被调用时发生的绑定,它指向什么完全取决于函数在哪里被调用。寻找调用位置就是寻找“函数被调用的位置”,但是做起来并没有这么简单,因为某些编程模式可能会隐藏真正的调用位置。最重要的是要分析调用栈(就是为了到达当前执行位置所调用的所有函数)。我们关心的调用位置就在当前正在执行的函数的前一个调用中。3.因此,如果你想要分析 this 的绑定,使用开发者工具得到调用栈,然后找到栈中第二个元素,这就是真正的调用位置。4.绑定规则独立函数调用:是无法应用其他规则时的默认规则。t..
2020-07-03 11:43:27
121
原创 你不知道的JAVASCRIPT:作用域和闭包
LHS 和 RHS 的含义是“赋值操作的左侧或右侧”并不一定意味着就是“=赋值操作符的左侧或右侧”。赋值操作还有其他几种形式,因此在概念上最好将其理解为“赋值操作的目标是谁(LHS)”以及“谁是赋值操作的源头(RHS)”。如果查找的目的是对变量进行赋值,那么就会使用 LHS 查询;如果目的是获取变量的值,就会使用 RHS 查询。如果 RHS 查询在所有嵌套的作用域中遍寻不到所需的变量,引擎就会抛出ReferenceError异常。值得注意的是,ReferenceError 是非常重要的异常类型。严格模式
2020-06-30 16:05:51
134
原创 招银提前批前端电话一面
招银电话面试一面(6-29)1 自我介绍2 如何实现双向数据绑定,答了v-model,又问如何使用3 js基本数据类型4 js声明提升5 Array如何判断其类型(讲了intanceof,又问还有别的方法吗?回答不知道)6 flex布局是什么7 js实现两数相加,但数据是字符串类型,该如何实现?(回答parseInt ,问抛出异常怎么办,又回答parseFloat,又问还有别的方法吗?答转成二进制可以吗,面试官说可以呀,但如果数据量很大怎么办,答不知道了)8 v-if和v-model的区别,
2020-06-29 15:50:05
8228
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人