blog icon indicating copy to clipboard operation
blog copied to clipboard

💡 技术博客

Results 143 blog issues
Sort by recently updated
recently updated
newest added

## 队列 队列是一种列表,与栈相反,特点表现为先入先出(First-in-First-out,FIFO)结构。常见的例子就是银行排队,先到人的先办理业务。 ## 实现 使用数组实现,js中的数组相对于其他语言,有它自己的优势,比如push()方法,向数组末尾追加元素并更新数组长度,shift()方法,取出数据第一项元素。所以,利用数组就很容易实现队列。 ``` function queue() { this.dataStore = []; this.length = length; this.iqueue = iqueue; this.oqueue = oqueue; this.front = front; this.back = back; this.clear =...

JS

## 盒模型 盒模型分IE盒模型(怪异盒模型)和W3C盒模型,属性分别是margin、border、padding、content,两者的区别在于,IE盒模型:`width=content + padding + border`,而w3c盒模型:`width=content`,这个和现实当中的盒子比较类似,所以称之为盒模型。w3c在CSS3中新增了一个属性,box-sizing。包含两个属性:`content-box`和`border-box`。`content-box:width=width`,`border-box:width=content+padding+border`

CSS

## 标记清除 标记清除是指对变量进行标记,当变量进入作用域中的时候,标记"进入环境",从逻辑上来讲,永远不能是释放进入环境的变量所占用的内存,因为只要执行流进入相应的环境,就会用到它们。比如闭包。当变量离开环境的时候,则标记为"离开环境"。 垃圾收集器在运行的时候会给存储在内存中的所有变量都加上标记。然后,它会去掉环境中的变量以及被环境中的变量引用的标记。而在此之后再被加上标记的变量将被视为准备删除的变量,原因是环境中的变量已经无法访问到这些变量了。最后。垃圾收集器完成内存清除工作,销毁那些带标记的值,并回收他们所占用的内存空间。 ## 引用计数 另一种不太常见的垃圾回收策略是引用计数。引用计数的含义是跟踪记录每个值被引用的次数。当声明了一个变量并将一个引用类型赋值给该变量时,则这个值的引用次数就是1。相反,如果包含对这个值引用的变量又取得了另外一个值,则这个值的引用次数就减1。当这个引用次数变成0时,则说明没有办法再访问这个值了,因而就可以将其所占的内存空间给收回来。这样,垃圾收集器下次再运行时,它就会释放那些引用次数为0的值所占的内存。

JS

这一次,彻底弄懂 JavaScript 执行机制 https://juejin.im/post/59e85eebf265da430d571f89 JavaScript 是如何工作的:在 V8 引擎里 5 个优化代码的技巧 https://github.com/xitu/gold-miner/blob/master/TODO/how-javascript-works-inside-the-v8-engine-5-tips-on-how-to-write-optimized-code.md JavaScript 是如何工作的:内存管理 + 处理常见的4种内存泄漏 https://github.com/xitu/gold-miner/blob/master/TODO/how-javascript-works-memory-management-how-to-handle-4-common-memory-leaks.md 从浏览器多进程到JS单线程,JS运行机制最全面的一次梳理 (值得反复阅读) https://juejin.im/post/5a6547d0f265da3e283a1df7?utm_medium=fe&utm_source=weixinqun 深入了解JavaScript引擎精华 (值得反复阅读) http://developer.51cto.com/art/201806/576835.htm 跟着 Event loop 规范理解浏览器中的异步机制 https://juejin.im/post/5b5873a1e51d4519133fbc35 [译] JavaScript 是如何工作的:深入网络层...

JS

## 作用域 作用域是一套规则,用于确定在何处以及如何查找变量(标识符)。如果查找的目的是对 变量进行赋值,那么就会使用 LHS 查询;如果目的是获取变量的值,就会使用 RHS 查询。 LHS查询```var a = 2;```,简单理解就是赋值 RHS查询```function foo(a) {}; foo(2); ```,简单理解就是查询值 ``` var a = 2; function foo() { console.log(a); } ``` 全局作用域中创建了一个a变量。在foo函数中可以访问到这个变量a。因为console.log(a)在执行的时候,会在当前的作用域(foo)下进行查找,如果没有查找到该变量,会继续往上进行查找。直到没有找到为止。 ```...

JS

原文地址:https://segmentfault.com/a/1190000002994742 还需要设置项目本地的配置和全局配置 ``` $ git config --local user.name "" $ git config --local user.email "" $ git config --local user.password "" $ git config --global user.name "" $ git config...

Git

``` function getType(obj) { // 为啥不用typeof? typeof无法区分数组和对象 if(Object.prototype.toString.call(obj) == '[object Object]') { return 'Object'; } if(Object.prototype.toString.call(obj) == '[object Array]') { return 'Array'; } return 'nomal'; }; function deepCopy(obj) { if...

JS

``` const multiparty = require('multiparty'); require('../../conf/util.js'); require('../../conf/oss.js'); const fs = require('fs'); const fsE = require('fs-extra'); global.router.put(`${global.api}uploadAvatar`, function (req, res) { let datas = {}; const { account, avatar } =...

Question

## settings.json ``` { // 启用或禁用在 VS Code 中重命名或移动文件时自动更新 import 语句的路径 "javascript.updateImportsOnFileMove.enabled": "always", // 禁止vscode的默认制表符 "editor.detectIndentation": false, // 自动换行 "editor.wordWrap": "on", // 字体大小 "editor.fontSize": 16, // 选中糟糕的- "editor.wordSeparators": "./\\()\"':,.;~!@#$%^&*|+=[]{}`~?", //...

Visual Studio Code

## Babel ``` $ npm install babel-upgrade -g $ babel-upgrade --write ``` 然后会发现package.json依赖包,自动给转换到了最新版。 ![image](https://user-images.githubusercontent.com/16217324/58931894-117fab80-8794-11e9-8dee-67a3abb6d498.png) Babel7新增了```babel.config.js```,这里我没有用到,所以还是选择使用```.babelrc```文件。 最终配置如下 ``` { "presets": [ [ "@babel/env", { "targets": { "edge": "17", "firefox": "60", "chrome":...

Technology