使用 sendBeacon 需要注意的问题

2023-02-07
阅读 1 分钟
3k
fetch和sendBeacon最大的区别fetch:页面销毁时的监控埋点大概率上报失败,优先级为 HighsendBeacon:页面销毁时的监控埋点也发送请求;在浏览器空闲的时候异步发送数据,不影响页面诸如 JS、CSS Animation 等执行,优先级为 Lowest需要注意的问题一、跨域请求使用 sendBeacon 发跨域请求时,需要注意以下两点不能设置 A...

Node 18 升级步骤及问题记录

2023-02-03
阅读 2 分钟
5.5k
其实升级的话比较简单,直接使用 nvm 进行升级即可,主要是要针对升级后的项目做一些验证,这里主要记录需要验证的一些点及遇到的一些问题和解决方案。

升级 node18 遇到的问题总结

2023-02-03
阅读 4 分钟
5.1k
npm7之前不会中断安装过程,会保留两个版本,一个放在一级目录,一个放到项目的目录下;npm7 升级之后,所有 peerDependencies 会自动安装,但是如何某个包的 peerDependencies 和 root 层同样报的版本冲突,会自动报错。

通过一道题来看React事件模型

2022-06-20
阅读 2 分钟
2k
下面代码输出什么 {代码...} 执行结果:dom childdom parentreact childreact parentdocument代码分析主要是考察 React 合成事件和 JS 原生事件的区别,以及它们的执行顺序。以React16.x版本之前的来分析。React16.x 以后有变更。分析一下上面的代码:可以分成两部分来看,JS原生事件部分及React合成事件部分。useEffect...

单点登录(SSO)及实现方案

2022-05-18
阅读 1 分钟
3.7k
单点登录:Single Sign On,简称SSO。用户只要登录一次,就可以访问所有相关信任应用的资源。企业里面用的会比较多,有很多内网平台,但是只要在一个系统登录就可以。

JavaScript的几种继承方式

2022-04-06
阅读 5 分钟
2.8k
这篇文章称为笔记更为合适一些,内容来源于 《JavaScript高级程序设计 (第三版)》第六章 6.3 继承JavaScript的几种继承方式原型链继承借助构造函数继承(经典继承)组合继承:原型链 + 借用构造函数(最常用)原型式继承 (Object.create)寄生式继承寄生组合式继承(最理想)ES6中的继承1. 原型链继承子类型的原型为父...

2020年中大厂前端面试总结

2020-08-27
阅读 6 分钟
17k
本次面试面试了很多家公司,包括 360,美团,猿辅导,小米,腾讯地图,头条,新东方,快手,知乎等几家公司,刚开始去面试的时候那段时间状态不是很好(基本每天都加班到很晚,周六日也没有休息的那种,而且当时心态真的是差到爆,很多平时自己很会的东西,被问到居然答不上来),基本一面就挂的那种(360,美团,猿辅导...

关于面试的一点心得

2020-08-27
阅读 3 分钟
3.1k
简历上:可以把自己擅长的部分写上,自己平常做过的一些东西写上,比如我说做了webpack打包优化,提升了xxx,首页性能优化,提升了xxx,然后必问,这些展开讲的话,细节就太多了,能说很长时间

深入理解JavaScript闭包之闭包的使用场景

2020-07-29
阅读 7 分钟
15.7k
任何一对花括号中的语句都属于一个快,在这之中的所有变量在代码块外都是不可见的,我们称之为块级作用域。大多数类C语言都拥有块级作用域,JS却没有,比如在for循环中定义的i,出了for循环还是有这个i变量。

深入理解JavaScript闭包之什么是闭包

2020-07-24
阅读 5 分钟
17k
作用域和词法作用域,作用域就是查找变量(去哪儿找,怎么找)的一套规则。词法作用域在你写代码的时候就确定了。JavaScript是基于词法作用域的语言,通过变量定义的位置就能知道变量的作用域。

深入理解JavaScript作用域

2020-07-21
阅读 5 分钟
6.4k
在上一篇文章 深入理解JavaScript 执行上下文 中提到 只有理解了执行上下文,才能更好地理解 JavaScript 语言本身,比如变量提升,作用域,闭包等,本篇文章就来说一下 JavaScript 的作用域。

深入理解JavaScript 执行上下文

2020-07-14
阅读 2 分钟
8k
只有理解了执行上下文,才能更好地理解 JavaScript 语言本身,比如变量提升,作用域,闭包等 执行上下文 执行上下文是当前代码的执行环境。 执行上下文主要是三种类型: 全局执行上下文:全局执行环境是最外围的一个执行环境,在浏览器的全局对象是 window, this指向这个对象 函数执行上下文:可以有无数个,函数被调用...

V8内存管理及垃圾回收机制

2020-07-10
阅读 3 分钟
7.6k
基本类型数据(Number, Boolean, String, Null, Undefined, Symbol, BigInt)保存在在栈内存中。引用类型数据保存在堆内存中,引用数据类型的变量是一个指向堆内存中实际对象的引用,存在栈中。

JavaScript代码是如何被执行的

2020-07-08
阅读 3 分钟
6.3k
计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。根据语言的执行流程,可以把语言分成编译型语言和解释型语言。

HTTPS是如何保证安全的

2020-06-17
阅读 2 分钟
6.5k
HTTP存在的问题 窃听风险:通信使用明文(不加密),内容可能会被窃听(第三方可能获知通信内容) 冒充风险:不验证通信方的身份,因此有可能遭遇伪装 篡改风险:无法证明报文的完整性,所以有可能已遭篡改 HTTPS 可以看到 HTTPS的网站,在浏览器的地址栏内会出现一个带锁的标记。 HTTPS并非是应用层一个新的协议,通常 HT...

Web安全之CSRF实例解析

2020-06-05
阅读 10 分钟
14.8k
之前写过一篇 web安全之XSS实例解析,是通过举的几个简单例子讲解的,同样通过简单得例子来理解和学习CSRF,有小伙伴问实际开发中有没有遇到过XSS和CSRF,答案是有遇到过,不过被测试同学发现了,还有安全扫描发现了可能的问题,这两篇文章就是简化了一下当时实际遇到的问题。

实现一个Vue自定义指令懒加载

2020-06-04
阅读 7 分钟
5.3k
比如我们加载一个页面,这个页面很长很长,长到我们的浏览器可视区域装不下,那么懒加载就是优先加载可视区域的内容,其他部分等进入了可视区域在加载。

web安全之XSS实例解析

2020-06-03
阅读 8 分钟
14.3k
跨站脚本攻击(Cross Site Script),本来缩写是 CSS, 但是为了和层叠样式表(Cascading Style Sheet, CSS)有所区分,所以安全领域叫做 “XSS”;

JavaScript中的Event Loop(事件循环)机制

2020-06-01
阅读 9 分钟
25.4k
最近面试了很多家公司,这道题几乎是必被问到的一道题。之前总觉得自己了解得差不多,但是当第一次被问到的时候,却不知道该从哪里开始说起,涉及到的知识点很多。于是花时间整理了一下。并不仅仅是因为面试遇到了,而是理解JavaScript事件循环机制会让我们平常遇到的疑惑也得到解答。

常考算法面试题系列:树的遍历

2020-05-15
阅读 5 分钟
2.5k
首文发布在 个人博客 两种通用的遍历树的策略 DFS(深度优先遍历):先序遍历,中序遍历,后序遍历; BFS(广度优先遍历):层序遍历 深度优先遍历(DFS) 这种方法以深度 depth 优先为策略,从根节点开始一直遍历到某个叶子节点,然后回到根节点,在遍历另外一个分支。 根据根节点,左孩子节点和右孩子节点的访问顺序又可以...

keep-alive的实现原理及LRU缓存策略

2020-04-03
阅读 5 分钟
4.7k
文章首发于个人博客 keep-alive 用法 我们先来看看 官方文档中keep-alive 的用法。 {代码...} props: include:只有名称匹配的组件才会被缓存 exclude: 任何名称匹配的组件都不会被缓存 max: 最多可以缓存多少组件实例。(2.5.0 新增, 一旦这个数字达到了,在新实例被创建之前,已缓存组件中最久没有被访问的实例会被销毁...

4个问题带你进阶React Hooks

2020-03-27
阅读 5 分钟
6k
相信大部分人都已经在使用 React hooks 了,但是在开发过程中,我们要 知其然知其所以然。整理了一下最近使用 React hooks 遇到的一些问题,如果有问题或更好的答案,欢迎一起交流。

赋值、浅拷贝、深拷贝区别

2020-03-23
阅读 5 分钟
1.9k
数据类型存储 基本类型数据保存在在栈内存中引用类型数据保存在堆内存中,引用数据类型的变量是一个指向堆内存中实际对象的引用,存在栈中。 为什么基本数据类型存在栈内存,引用数据类型存在堆内存? 基本数据类型比较稳当,相对来说占用的内存较小 引用数据类型是动态的,大小不固定,占用的内存较大,但内存地址大小是...

一文理解 this、call、apply、bind

2020-03-17
阅读 5 分钟
2.8k
文章首发于个人博客 导读 this 记得差不多在两年多之前写过一篇文章 两句话理解js中的this,当时总结的两句话原话是这样的: 普通函数指向函数的调用者:有个简便的方法就是看函数前面有没有点,如果有点,那么就指向点前面的那个值; 箭头函数指向函数所在的所用域: 注意理解作用域,只有函数的{}构成作用域,对象的{}...

三行代码实现 add(1)(2)(3)

2020-03-16
阅读 2 分钟
2.4k
本文主要从 3W (what, how, why) 角度出发通俗易懂的解释一下 什么是函数柯里化,以及怎么用三行代码来实现 add(1)(2)(3) 这个很常见的面试题。

从JS底层理解var,const,let

2020-03-14
阅读 4 分钟
4.5k
基本数据类型是按值访问的,因为可以操作保存在变量中的实际的值。引用数据类型的值是保存在内存中的对象,JS不允许直接访问内存中的位置,所以在操作的时候操作的是对象的引用;因此是引用数据类型是按照引用访问的。

简单通俗的理解Vue3.0中的Proxy

2020-03-12
阅读 5 分钟
15.9k
目录 Proxy Vue 2.0 使用 Object.defineProperty()实现数据响应 Vue 3.0 使用 Proxy Proxy的其他应用 Proxy 什么是代理呢,可以理解为在对象之前设置一个“拦截”,当该对象被访问的时候,都必须经过这层拦截。意味着你可以在这层拦截中进行各种操作。比如你可以在这层拦截中对原对象进行处理,返回你想返回的数据结构。 E...

装饰器

2020-03-11
阅读 3 分钟
2.3k
文章首发于 个人博客 前言 JavaScript装饰器(Decorator)的语法现在处于 Stage 2 阶段,具体的可以查看 proposal-decorators。 文章下面的内容是根据以前的提案同时参考了一些文章,已经有点过时了。 目录 装饰器 类的装饰 方法的装饰 为什么装饰器不能用于函数 core-decorators.js 装饰器 装饰器(Decorator)目前,是一种...

详解ES6中的class

2020-03-10
阅读 7 分钟
2.2k
文章首发于 个人博客 目录 class 静态方法 静态属性 继承 super class class是一个语法糖,其底层还是通过 构造函数 去创建的。所以它的绝大部分功能,ES5 都可以做到。新的class写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已。 {代码...} 上面代码用 ES6的class实现,就是下面这样 {代码...} construc...

async原理解析

2020-03-09
阅读 3 分钟
2.5k
目录 async函数是什么 async函数原理 常见的关于async的笔试题 async函数 {代码...} 把上面代码的Generator函数 foo 可以写成 async 函数,就是这样: {代码...} 可以发现, async函数就是将Generator函数的星号(*)替换成async,将 yield替换成 await,仅此而已。 async函数是基于 Generator的改进,体现在以下4点 1 . ...