js
蜗牛不会跑~
生命虽然无趣,但总要留下点什么!!
展开
-
防抖和节流原理分析
窗口的resize、scroll、输入框内容校验等操作时,如果这些操作处理函数是较为复杂或页面频繁重渲染等操作时,在这种情况下如果事件触发的频率无限制,会加重浏览器的负担,导致用户体验非常糟糕。此时我们可以采用debounce(防抖)和throttle(节流)的方式来减少触发的频率,同时又不影响实际效果。eg:搜索框的请求优化,输入搜索词条需要立即触发搜索请求时,防抖和节流可以将多个请求合并为...转载 2019-09-23 16:34:57 · 8490 阅读 · 0 评论 -
通过一个场景实例 了解前端处理大数据的无限可能
随着前端的飞速发展,在浏览器端完成复杂的计算,支配并处理大量数据已经屡见不鲜。那么,如何在最小化内存消耗的前提下,高效优雅地完成复杂场景的处理,越来越考验开发者功力,也直接决定了程序的性能。本文展现了一个完全在控制台就能模拟体验的实例,通过一步步优化,实现了生产并操控1000000(百万级别)个对象的场景。导读:这篇文章涉及到 javascript 中 数组各种操作、原型原型链、ES6、c...转载 2019-09-17 16:29:51 · 206 阅读 · 0 评论 -
Js系列四:变量对象
在前面的文章中我们提到过变量对象(Variable Object),我们在Js代码中申明的所有变量都保存在变量对象当中,除此之外变量对象中还可能包含以下内容。(1)函数的参数(arguments,es6中废弃)。(2)当前执行上下文的所有函数申明(通过function申明的函数)。(3)当前上下文的所有变量申明(通过var申明的变量)。一,创建过程变量对象的创建依次经历了一下过...原创 2019-01-13 15:24:38 · 560 阅读 · 0 评论 -
Js系列三:执行上下文
Js代码在运行的时候会进入一个特定的环境中,这个环境被称为执行上下文。在Js中运行环境主要包括以下三种情况(1)全局环境既Js代码运行时首先进入的环境。(2)函数环境:函数运行时会进入当前函数的环境执行代码。(3)eval环境:此不推荐使用。由此我们知道在Js程序执行过程中必然会出现多个执行环境(执行上下文)。Js引擎以函数调用栈的方式来处理,函数调用栈规定了Js代码的执行顺序。栈...原创 2019-01-13 13:19:20 · 238 阅读 · 0 评论 -
Js系列二:内存空间
因为js有垃圾自动回收机制,所以内存空间不是一个被经常提及的概念,也很容易被忽略,特别是非工科内入行的前端通常对内存机制比较模糊甚至一无所知。然而内存空间确是真正的基础,是我们理解其他概念的基石,如闭包等。所以我们需要花点时间来理解一下它。一,基础数据类型与变量对象 最新的ECMAScript标准定义了7种数据类型,其中6种基础数据类型和一种引用数据类型(Object...原创 2019-01-12 22:24:03 · 453 阅读 · 0 评论 -
Js系列一十三:一个简单的状态管理库
像vue或者react等在做中大型项目的时候,如果运用自身的方法来管理数据状态,最终会导致代码变得臃肿难以维护及复用,因此他们都会运用相应的状态管理库的协助管理数据状态,如,vuex,redux,mobix,flux等。今天我们不是讲如何运用一个状态管理库,而是运用js模块化开发的思想来写一个简单的状态管理库,从而让大家了解状态管理库的实现思路及js模块化开发的思想。注:为...原创 2019-01-01 17:46:56 · 2149 阅读 · 0 评论 -
Js系列一:三种基础的数据结构
在js中我们必须了解得三种数据结构:栈(stack),堆(heap),队列(queue).一,栈(1),栈是一种数据结构,它表达的是数据的一种存取方式,这是理论基础。(2),栈可以用来规定代码的执行顺序,在js中通常叫做函数调用栈(call stack),它是根据数据结构理论实现的一种实践。(3),栈表达的是一种数据在内存当中的储存区域,通常叫栈区。但js和其他语言有所区别,它并没...原创 2019-01-01 16:17:20 · 2323 阅读 · 1 评论 -
JS获取当前时间戳的方法
JavaScript 获取当前时间戳:第一种方法:var timestamp = Date.parse(new Date());第二种方法:var timestamp = (new Date()).valueOf();第三种方法:var timestamp=new Date().getTime();第一种:获取的时间戳是把毫秒改成000显示,第二种和第三种是获取了当前毫...原创 2018-12-21 16:37:19 · 236 阅读 · 0 评论 -
js网络请求性能优化之防抖与节流
一丶基本概念防抖(debounce):在函数需要频繁触发时,只有当有足够空闲的时间时,才执行一次。就好像在百度搜索时,每次输入之后都有联想词弹出,这个控制联想词的方法就不可能是输入框内容一改变就触发的,他一定是当你结束输入一段时间之后才会触发。节流(thorttle):预定一个函数只有在大于等于执行周期时才执行,周期内调用不执行。就好像你在淘宝抢购某一件限量热卖商品时,你不断点刷新点购买,...转载 2018-09-14 10:13:13 · 630 阅读 · 0 评论 -
module.exports与exports??关于exports的总结
PI文档是枯燥的,下面本人收集了一些论坛经常有人疑问和开源代码中经常遇到的案例供大家研究一下。文章博客地址 排版更佳。。##module.exports与exports的区别每一个node.js执行文件,都自动创建一个module对象,同时,module对象会创建一个叫exports的属性,初始化的值是 {} module.exports = {};Node.js为了方便地导出功能函数,node....转载 2018-07-07 23:46:14 · 1415 阅读 · 0 评论 -
ES6 Async/Await 完爆Promise的6个原因
自从Node的7.6版本,已经默认支持async/await特性了。如果你还没有使用过他,或者对他的用法不太了解,这篇文章会告诉你为什么这个特性“不容错过”。本文辅以大量实例,相信你能很轻松的看懂,并了解Javascript处理异步的一大杀器。文章灵感和内容借鉴了6 Reasons Why JavaScript’s Async/Await Blows Promises Away (Tutorial...转载 2018-07-05 14:12:57 · 408 阅读 · 0 评论 -
CSS如何实现内凹角效果
记得@Lea Verou的《CSS Secrets》一书和前几天@Chris Coyier刚发的帖子都介绍了CSS怎么实现元素斜切口的效果。我也尝试着借助Vue的能力,把这种效果构建成一个Vue组件。我把这种效果定义为外切口。而今天将要聊的是与其刚好相反的一个效果:CSS如何实现内凹角的效果。上图展示的效果就是接下来所要聊的内凹角的效果。也就是说,通过下文的介绍,我们可以知道这种效果是如何做的,而...转载 2018-06-26 16:14:58 · 10948 阅读 · 1 评论