
js
文章平均质量分 93
邱先生~
这个作者很懒,什么都没留下…
展开
-
清楚的理解module.exports与exports 和export与export default有什么区别
文章目录CommonJS模块规范exports 与 module.exportsES6模块规范export和export defaultexportexport default首先说明一下 CommonJS模块规范(node用的就是这个)是运行时加载,es6模块规范是编译时加载运行时加载 ---- 加载的时候引入对应的模块,整体引入,即使你只有几个函数,但也是整体模块都引入进来了编译时加载 ---- 编译的时候就知道需要引入模块中的那些函数,按需引入,在加载之前就已经确定好引入关系node原创 2021-04-08 16:50:58 · 564 阅读 · 0 评论 -
输入 URL 到页面渲染的整个流程
一次完整的HTTP事务流程域名解析,浏览器根据 DNS 服务器得到域名的 IP 地址发起TCP三次握手建立TCP连接后向这个 IP 的机器发送 HTTP 请求服务器收到、处理并返回 HTTP 请求,浏览器得到HTML代码浏览器解析HTML代码,渲染页面DNS解析域名DNS 的作用就是通过域名查询到具体的 IP。因为 IP 存在数字和英文的组合(IPv6),很不利于人类记忆,所以就出现了域名。你可以把域名看成是某个 IP 的别名,DNS 就是去查询这个别名的真正名称是什么。在 TCP原创 2020-05-29 15:48:19 · 623 阅读 · 0 评论 -
网络协议相关---UDP和TCP
思考:UDP 与 TCP 的区别是什么?网络分层协议OSI七层模型OSI七层协议模型主要是:应用层(Application)、表示层(Presentation)、会话层(Session)、传输层(Transport)、网络层(Network)、数据链路层(Data Link)、物理层(Physical)。TCP/IP四层模型TCP/IP是一个四层的体系结构,主要包括:应用层、传输层、网际层和网络接口层。从实质上讲,只有上边三层,网络接口层没有什么具体的内容。五层体系结构五层体系结构包括:.原创 2020-05-29 14:52:53 · 354 阅读 · 0 评论 -
浏览器相关---安全防范
XSSCSRF点击劫持中间人攻击XSS思考:什么是 XSS 攻击?如何防范 XSS 攻击?什么是 CSP?XSS 简单点来说,就是攻击者想尽一切办法将可以执行的代码注入到网页中XSS 可以分为多种类型,但是总体上我认为分为两类:持久型和非持久型。持久型持久型也就是攻击的代码被服务端写入进数据库中,这种攻击危害性很大,因为如果网站访问量很大的话,就会导致大量正常访问页面的用户都受到攻击。举个例子,对于评论功能来说,就得防范持久型 XSS 攻击,因为我可以在评论中输入以下内容这.原创 2020-05-29 14:51:38 · 297 阅读 · 0 评论 -
浏览器相关--- 浏览器渲染原理
DOM树的形成CSSOM树的形成渲染树阻塞渲染重绘和回流浏览器渲染原理导读: 我们知道执行 JS 有一个 JS 引擎,那么执行渲染也有一个渲染引擎。同样,渲染引擎在不同的浏览器中也不是都相同的。比如在 Firefox 中叫做 Gecko,在 Chrome 和 Safari 中都是基于 WebKit 开发的。在这主要说下关于 WebKit 的这部分渲染引擎内容。浏览器接收到 HTML 文件并转换为 DOM 树当我们打开一个网页时,浏览器都会去请求对应的 HTML 文件。虽然平时我们写代.原创 2020-05-29 14:51:17 · 426 阅读 · 0 评论 -
浏览器相关 --- 浏览器缓存机制
浏览器缓存机制缓存可以说是性能优化中简单高效的一种优化方式了,它可以显著减少网络传输所带来的损耗。对于一个数据请求来说,可以分为发起网络请求、后端处理、浏览器响应三个步骤。浏览器缓存可以帮助我们在第一和第三步骤中优化性能。比如说直接使用缓存而不发起请求,或者发起了请求但后端存储的数据和前端一致,那么就没有必要再将数据回传回来,这样就减少了响应数据。接下来的内容中我们将通过以下几个部分来探讨浏览器缓存机制:缓存位置缓存策略实际场景应用缓存策略缓存位置从缓存位置上来说分为四种,并且各自有原创 2020-05-29 14:50:46 · 310 阅读 · 0 评论 -
js理解---webApi相关
BOMDOMBOMBOM(浏览器对象模型)是浏览器本身的一些信息的设置和获取,例如获取浏览器的宽度、高度,设置让浏览器跳转到哪个地址。window - - - 表示浏览器中打开的窗口navigator - - - 包含有关浏览器的信息screen - - - 包含有关客户端显示屏幕的信息location - - - 包含有关当前 URL 的信息history - - - 包含用户(在浏览器窗口中)访问过的 URL这些对象就是一堆非常简单粗暴的 API,可以去 MDN 或者 w3s.原创 2020-05-28 17:56:36 · 483 阅读 · 0 评论 -
js理解---数组相关
哪些方法改变原有数组,哪些方法返回新的数组哪些方法改变原有数组,哪些方法返回新的数组改变原数组:push()pop()shift()unshift()sort()reverse()splice()不改变原数组slice()concat()join()forEach()filter()map()find()findIndex()every()some()reduce()sort()描述sort() 方法用原地算法对数组的元素进行排序,并返回数组(.原创 2020-05-27 09:20:36 · 425 阅读 · 1 评论 -
js理解---Object对象常用方法
Obejct.assgin()Obejct.create()Object.defineProperty()Object.defineProperties()Object.keys()Object.values()Object.entries()Obejct.assgin()描述Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。语法Object.assign(target, ...sources)案例 const .原创 2020-05-21 13:55:12 · 925 阅读 · 0 评论 -
js理解---eventloop
进程和线程相信大家经常会听到 JS 是单线程执行的,但是你是否疑惑过什么是线程?讲到线程,那么肯定也得说一下进程。本质上来说,两个名词都是 CPU 工作时间片的一个描述。进程描述了 CPU 在运行指令及加载和保存上下文所需的时间,放在应用上来说就代表了一个程序。线程是进程中的更小单位,描述了执行一段指令所需的时间。(进程相当于一个程序,线程是更小的单位,描述了执行一段指令所需要的时间)把这些概念拿到浏览器中来说,当你打开一个 Tab 页时,其实就是创建了一个进程,一个进程中可以有多个线程,比如渲染原创 2020-05-12 18:15:10 · 264 阅读 · 1 评论 -
js理解---异步编程
并发(concurrency)和并行(parallelism)区别并发与并行的区别?并发是宏观概念,我分别有任务 A 和任务 B,在一段时间内通过任务间的切换完成了这两个任务,这种情况就可以称之为并发。并行是微观概念,假设 CPU 中存在两个核心,那么我就可以同时完成任务 A、B。同时完成多个任务的情况就可以称之为并行。回调函数什么是回调函数?回调函数有什么缺点?如何解决回调地狱问题?ajax(url, () => { // 处理逻辑})但是回调函数有一个致命的弱原创 2020-05-12 18:14:35 · 272 阅读 · 0 评论 -
js理解---原型和原型链
导读:什么是原型?什么又是原型链?原型先写一个简单的代码示例。// 构造函数function Foo(name, age) { this.name = name}Foo.prototype.alertName = function () { alert(this.name)}// 创建示例var f = new Foo('zhangsan')f.printName = function () { console.log(this.name)}// 测试f.原创 2020-05-09 16:38:08 · 738 阅读 · 0 评论 -
js理解---深浅拷贝
导读:什么是浅拷贝?如何实现浅拷贝?什么是深拷贝?如何实现深拷贝?我们了解对象类型在赋值的过程中其实是复制了地址,从而会导致改变了一方其他也都被改变的情况。通常在开发中我们不希望出现这样的问题,我们可以使用浅拷贝来解决这个情况。let a = { age: 1}let b = aa.age = 2console.log(b.age) // 2浅拷贝1、Object.assign首先可以通过 Object.assign 来解决这个问题,很多人认为这个函数是用来深拷贝的。其实并不是,.原创 2020-05-09 15:56:26 · 228 阅读 · 0 评论 -
js理解---执行上下文、作用域、作用域链、闭包、this指向
执行上下文在一段 JS 脚本(即一个特点:单线程,在主进程上运行同步执行,从上往下按顺序执行全局上下文只有一个,浏览器关闭时会被弹出栈函数的执行上下文没有数目限制函数每被调用一次,都会产生一个新的执行上下文环境注意! 执行全局代码时,会产生一个执行上下文环境,每次调用函数都又会产生执行上下文环境。当函数调用完成时,这个上下文环境以及其中的数据都会被消除,再重新回到全局上下文环境。...原创 2020-05-08 11:24:49 · 439 阅读 · 0 评论 -
js理解---数据类型转换
数据类型之间的转换数据类型之间的转换首先我们要知道,在 JS 中类型转换只有三种情况,分别是:转换为布尔值转换为数字转换为字符串1、转boolean在条件判断时,除了 undefined, null, false, ‘’, NaN, 0, -0,其他所有值都转为 true,包括所有对象。2、转number在条件判断时,会比较==/===两边的值是否相等,这里会隐式转换...原创 2020-05-08 10:52:07 · 409 阅读 · 0 评论