- 博客(21)
- 收藏
- 关注
原创 Dell服务器R740设置U盘启动
2、选择System Security。4、重启BIOS,按F11选择启动项。5、选择我们U盘,做为第一启动项。1、F2进入系统BIOS。
2023-03-20 22:17:45 12788 6
原创 V8的垃圾回收机制
垃圾回收:将内存中不再使用的数据进行清理,释放内存空间。V8将内存分为了新生代空间和老生代空间。新生代空间:用于存活时间较短的对象。在64位操作系统有32MB的空间,32位操作系统有16MB空间。新生代空间又分为两个空间:from空间和to空间。Scavenge GC算法:当from空间被沾满时,启动GC算法。1、将存活的对象从from空间转移到to空间。2、清空from空间3、fr...
2019-04-02 17:02:30 334
原创 TCP的三次握手和四次挥手
三次握手在建立连接前,客户端和服务端需要通过握手来确认对方:客户端发送syn(同步序列编号)请求,进入syn_send状态,等待确认;服务端收到并确认syn包后发送syn+ack包,进入syn_recv状态;客户端接收到syn+ack包后,发送ack包,双方进入链接状态;四次挥手客户端 - - FIN - - > 服务端。此时,客户端停止发送数据,并且进入FIN_WAIT...
2019-04-01 22:20:08 188
原创 Node的Event Loop:6个阶段
timer阶段执行到期的setTimeout / setInterval队列回调。I/O阶段执行上轮残留的callback。idle,prepare这个阶段仅在内部使用,可以不必理会。poll等待回调。a、执行回调b、执行定时器如果有遇到setTimeout / setInterval,则返回到timer阶段。如果遇到setImmediate,则前往check阶...
2019-04-01 21:16:22 763 1
原创 详解Object.create(null)
Object.create()的定义:Object.create(proto, [propertiesObject])proto: 新创建对象的原型对象propertiesObject:可选参数。要添加新对象的可枚举属性(新添加的属性是自身的属性,而不是其原型链上的属性)Object.create(null) 与 {…} 的区别:首先看一下经常使用的 {} 创建的对象是什么样子:...
2019-03-13 16:10:17 2486
原创 数组扁平化处理
多层嵌套数组的处理:const foo = arr => arr.reduce((a, b) => a.concat(Array.isArray(b) ? foo(b) : b), []);var b = [[1, [1, [2]]], 2, [3, [2]]];foo(b); // [1, 1, 2, 2, 3, 2]
2018-12-27 16:26:24 180
原创 关于this的指向
this的指向,是在函数被调用的时候确定也就是执行上下文被创建的时候确定的,因此,一个函数中this的指向非常灵活。但是在函数执行过程中,this一旦被确定,就不可更改。 var a = 10; var obj = { a: 20, } function fn() { this = obj; // 试图修改this 报错 co...
2018-11-06 17:00:35 201
原创 作用域链和闭包
作用域链,是由当前环境与上层环境的一系列变量对象组成,它保证了当前执行环境对符合访问权限变量和函数的有序访问。 function test() { var b = a + 10; function innerTest() { var c = 10; return b + c; } return innerT...
2018-11-05 22:52:20 161
原创 执行上下文中的变量对象详解
一个执行上下文的生命周期分为两个阶段创建阶段 在这个阶段中,执行上下文会分别创建变量对象,建立作用域,以及确定this的指向。代码执行阶段 创建完成后,就会开始执行代码,这个时候,会完成变量赋值,函数引用,以及执行其它代码。变量对象(Variable Object)变量对象的创建,依次经历了以下几个过程:建立arguments对象。检查当前上下文中的参数,建立该对...
2018-11-03 10:20:42 649
原创 关于执行上下文
执行上下文每当控制器转到可执行代码的时候,就会进入一个执行上下文。执行上下文可以理解为当前代码的执行环境,它会形成一个作用域。在一个JavaScript程序中,必定会产生多个执行上下文,JavaScript会以栈的方式来处理它们,这个栈成为函数调用栈(call stack)。栈底永远都是全局上下文,栈顶就是当前正在执行的上下文。执行上下文可以理解为函数执行的环境,每一个函数执行时都会给对应的...
2018-11-02 16:39:51 232
原创 js更加简洁的小技巧(数组去重,对象解构)
1、清空或截断数组在不重新给数组赋值的情况下,清空或截断数组的最简单方法是更改其 length 属性值:const arr = [1, 2, 3, 4, 5];// 截断arr.length = 3;console.log(arr); // [1, 2, 3]// 清除arr.length = 0;console.log(arr); // []console.log(arr[...
2018-10-31 14:12:15 937
原创 如何判断数组里面是否存在 -0
当我们要判断数组里面是否存在 -0时候,需要知道 -0 和 0 的区别。直接撸代码看容易点:console.log(1/0); // Infinityconsole.log(1/-0); // -Infinity这样就容易区分了:function f(arr) { return arr.some(item => 1/item === -Infinity)}f([...
2018-08-31 10:59:07 3873
原创 前端安全性问题
**1、XSS攻击(跨站脚本攻击)** XSS(Cross Site Scripting)是常见的web攻击技术之一。所谓的跨站脚本攻击是指:恶意攻击者往web页面里注入代码,当用户浏览这些网页时就会执行其中的恶意代码,可以对用户进行cookie信息、会话劫持等各种攻击。 解决方案: (1)输入过滤。永远不要相信用户的输入,对用户输...
2018-08-14 17:10:37 351
原创 JS中的堆和栈
堆(heap):堆内存的简称。 栈(stack):栈内存的简称。 在js中的变量分为基本类型和引用类型。基本类型就是保存在栈中的简单数据段,而引用类型就是那些保存在堆内存中的对象。 基本类型在内存中分别占有固定大小的空间,会自动释放。引用类型值大小不固定,栈内存中存放地址指向堆内存中的对象,当查询引用类型的变量时候先从栈中读取内存地址,然后再通过地址找到堆中的值。...
2018-08-08 12:06:24 1319
原创 希望号不在丢了
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I...
2018-08-08 11:33:10 82
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人