与缓存相关的HTTP请求头有哪些强缓存:ExpiresCache-Control协商缓存:Etag、If-None-MatchLast-Modified、If-Modified-Since代码输出结果function foo(something){
this.a = something
}
var obj1 = {
foo: fo
......
330
0
0
2023-01-13
跨域问题跨域:浏览器同源策略引起的接口调用问题同源策略: 主机 端口 协议接口调用: XMLHttpRequest 和 Fetch 都遵循同源策略浏览器:浏览器发现可疑行为,拒绝接收浏览器限制跨域请求一般有两种方式:浏览器限制发起跨域请求跨域请求可以正常发起,但是返回的结果被浏览器拦截了一般浏览器都是第二种方式限制跨域请求,那就是说请求已到达服务器,并有可能
......
307
0
0
2023-01-13
CSS 如何阻塞文档解析?理论上,既然样式表不改变 DOM 树,也就没有必要停下文档的解析等待它们。然而,存在一个问题,JavaScript 脚本执行时可能在文档的解析过程中请求样式信息,如果样式还没有加载和解析,脚本将得到错误的值,显然这将会导致很多问题。所以如果浏览器尚未完成 CSSOM 的下载和构建,而我们却想在此时运行脚本,那么浏览器将延迟 Java
......
381
0
0
2023-01-10
1. JS 有哪些数据类型?根据 JavaScript 中的变量类型传递方式,分为基本数据类型和引用数据类型两大类七种。基本数据类型包括Undefined、Null、Boolean、Number、String、Symbol (ES6新增)六种。引用数据类型只有Object一种,主要包括对象、数组和函数。判断数据类型采用typeof操作符,有两种语法:type
......
299
0
0
2023-01-10
说到JavaScript的原型和原型链,相关文章已有不少,但是大都晦涩难懂。本文将换一个角度出发,先理解原型和原型链是什么,有什么作用,再去分析那些令人头疼的关系。一、引用类型皆为对象原型和原型链都是来源于对象而服务于对象的概念,所以我们要先明确一点:JavaScript中一切引用类型都是对象,对象就是属性的集合。Array类型、Function类型、Obj
......
311
0
0
2023-01-08
JavaScript 闭包难点剖析一、作用域基本介绍ES6之前只有全局作用域与函数作用域两种,ES6出现之后,新增了块级作用域1.全局作用域在JavaScript中,全局变量是挂载在window对象下的变量,所以在网页中的任何位置你都可以使用并且访问到这个全局变量当我们定义很多全局变量的时候,会容易引起变量命名的冲突,所以在定义变量的时候应该注意作用域的问题
......
302
0
0
2023-01-08
序言一次面试中,我提到自己用过pm2,面试接着问:「那你知道pm2父子进程通信方式吗」。我大概听说pm2有cluster模式,但不清楚父子进程如何通信。面试结束后把NodeJS的多进程重新整理了一下。对于前端开发同学,一定很清楚js是单线程非阻塞的,这决定了NodeJS能够支持高性能的服务的开发。 JavaScript的单线程非阻塞特性让NodeJS适合IO
......
351
0
0
2023-01-08
前言webpack 在前端工程领域起到了中流砥柱的作用,理解它的内部实现机制会对你的工程建设提供很大的帮助(不论是定制功能还是优化打包)。下面我们基于 webpack5 源码结构,对整个打包流程进行简单梳理并进行实现,便与思考和理解每个阶段所做的事情,为今后扩展和定制工程化能力打下基础。一、准备工作在流程分析过程中我们会简单实现 webpack 的一些功能,
......
326
0
0
2023-01-08
引言围绕 Webpack 打包流程中最核心的机制就是所谓的 Plugin 机制。所谓插件即是 webpack 生态中最关键的部分, 它为社区用户提供了一种强有力的方式来直接触及 webpack 的编译过程(compilation process)。今天,我们来聊聊 Webpack 中必不可少的核心 Plugin 机制 ~Plugin本质上在 Webpack
......
359
0
0
2023-01-08
实现ES6的extendsfunction B(name){
this.name = name;
};
function A(name,age){
//1.将A的原型指向B
Object.setPrototypeOf(A,B);
//2.用A的实例作为this调用B,得到继承B之后的实例,这一步相当于调用super
Ob
......
328
0
0
2023-01-08
不论是什么样的前端面试,总会问到的一个问题:前端性能优化。相信如果这个问题没有答好,在面试中会很被动。于是,趁着这个天天宅的时期,好好的整理了一番。Start~一、HTML优化渲染顺序1、CSS样式表置于头部,CSS会一边加载一边渲染2、JS脚本置于尾部,JS在未加载完成之前,会阻塞渲染3、使用外部的样式表和脚本,优先加载出HTML结构4、关键JS、CSS代
......
327
0
0
2023-01-08
UDP和TCP有什么区别TCP协议在传送数据段的时候要给段标号;UDP协议不TCP协议可靠;UDP协议不可靠TCP协议是面向连接;UDP协议采用无连接TCP协议负载较高,采用虚电路;UDP采用无连接TCP协议的发送方要确认接收方是否收到数据段(3次握手协议)TCP协议采用窗口技术和流控制对浏览器的缓存机制的理解浏览器缓存的全过程:浏览器第一次加载资源,服务器
......
329
0
0
2023-01-08
当我们刚开始学习JS代码时,我们只需要掌握JS中对应知识点就好,随着对JS代码的熟悉程度,我们就要思考如何写出更优雅,更简洁的代码。接下来我分享10种常用JS代码功能,通过常规写法和优雅写法的对比,来体现其优雅和简洁性。代码中用了ES6新特性,如果你对ES6不了解,可以先收藏好。在后期的VUE中,基本都在和ES6打交道。1、数组合并常规写法利用concat方
......
367
0
0
2023-01-08
目录安装 Memlab在 Demo App 中检测泄漏设置示例 Web App1. 克隆仓库2. 运行示例 App查找内存泄漏1.创建一个场景文件2.运行 memlab3.调试泄漏跟踪更多Memlab 是一款 E2E 测试和分析框架,用于发现 JavaScript 内存泄漏和优化机会。Memlab 是 JavaScript 的内存测试框架。它支持定义一个测试
......
350
0
0
2023-01-08
前言:无论什么语言,调试能力都是非常重要的,像 C、C++ 等语言,我们可以使用现成的工具去调试。JS 也不例外,我们可以通过浏览器来实现对 JS 的调试,但是 JS 运行时就不太一样了,因为 JS 运行时通常独立于浏览器运行,所以无法直接使用浏览器提供的能力,这时候就需要自己实现了。当然 JS 运行时不需要完全实现调试的功能,核心的能力都是由 V8 提供,
......
412
0
0
2023-01-05