随笔分类 -  javascript

javascript学习笔记
摘要:无限滚动 某种业务场景,需要下拉展示大量的列表数据,例如10万条。假设一条数据就是一个dom, 如果使用普通的下拉加载,就会在一个页面上生成10个dom。这样会导致页面性能急剧下降。对用户体验极其不优好。针对天量数据的下拉列表,是否有更好的方案来解决呢,接下来就分析下如何通过虚拟列表来实现。 虚拟列 阅读全文
posted @ 2021-09-06 15:41 eastsae 阅读(949) 评论(0) 推荐(0)
摘要:防抖 防抖, 仅仅从字面去理解,就是防止抖动,关键点是等待,等待300ms,如果没有新的action,就执行。 这里举一个更形象的例子,也是使用此场景最多的例子。 有一个搜索输入框,为了提升用户体验,希望在用户输入后可以立即展现搜索结果,而不是每次输入完后还要点击搜索按钮。最基本的实现方式应该很容易 阅读全文
posted @ 2021-08-03 19:04 eastsae 阅读(67) 评论(0) 推荐(0)
摘要:一: 模拟new的实现 我们首先看一下new的使用 function aninmal (name, actions) { this.name = name this.actions = actions this.sayName = function () { console.log('myname 阅读全文
posted @ 2021-08-03 14:12 eastsae 阅读(67) 评论(0) 推荐(0)
摘要:Array 原型上有很多数组的方法。例如 map, every, some,filter,forEach等,今天我们就使用高阶函数来mock以上的功能。 以上方法怎么使用,就不再举例说明了,大家应该都用的滚瓜烂熟了。常用的使用模式都是这样的。 [1,2,3,4,5].forEach((item, i 阅读全文
posted @ 2021-06-20 22:32 eastsae 阅读(52) 评论(0) 推荐(0)
摘要:每次看到移位运算符的时候,脑子都会懵一会儿。原因还是没有什么理解位移运算。今天好好学习梳理下相关的知识点。 1: << 运算符-左移运算符 “<<”运算符执行左移位运算。在移位运算过程中,符号位始终保持不变。如果右侧空出位置,则自动填充为 0;超出 32 位的值,则自动丢弃。 console.log 阅读全文
posted @ 2021-06-14 22:43 eastsae 阅读(922) 评论(0) 推荐(0)
摘要:我们都知道,没有promise的时代,异步的实现是通过回调来实现的。造成的结果就是回调地狱,书写代码的形式就是一层嵌套一层,看起来非常不直观。 后来ES5出来了promise的解决方案,书写代码以链式的方式来调用。我们看2个简单的例子。 let promise = readFile('example 阅读全文
posted @ 2021-06-14 22:37 eastsae 阅读(73) 评论(0) 推荐(0)
摘要:对于this,理解一直都不透彻,前前后后也看了一些技术书,以后相关博客,总算是想要总结点什么了。 this在不同的上下文环境指代不同的对象,与声明环境无关,与运行环境有关 this 指向全局对象window(在服务器端指向global) var name = 'jack' function sayN 阅读全文
posted @ 2021-03-09 20:09 eastsae 阅读(98) 评论(0) 推荐(0)
摘要:根据最近看过的书和博客,总结一下自己对于javascript构造函数,原型和继承的理解与认知 参考资料:javascript高级程序设计 目录结构如下: 认识构造函数 原型模式 组合使用构造函数与原型模式 简单的介绍了构造函数与原型,现在开始正式学习继承 4.1 原型链继承 4.2 借助构造函数继承 阅读全文
posted @ 2021-03-09 20:07 eastsae 阅读(153) 评论(0) 推荐(0)
摘要:所谓的js变量提升,笔者理解为就是执行上下文所引出的概念。那么我们需要着重来理解执行上下文,执行上下文理解了,所谓的js变量提升也就无师自通了。 执行上下文 首先我们先看一段代码: console.log(a); //Uncaught ReferenceError: a is not defined 阅读全文
posted @ 2021-03-09 20:03 eastsae 阅读(64) 评论(0) 推荐(0)
摘要:参考文章:https://dmitripavlutin.com/how-to-iterate-easily-over-object-properties-in-javascript/ 遍历js中的对象,包括了遍历对象的key和value,以及还会遍历到继承的对象上的属性(原型上的属性),当有些属性是 阅读全文
posted @ 2021-03-09 19:58 eastsae 阅读(166) 评论(0) 推荐(0)
摘要:需要特别声明,此篇文章翻译于Kuba Michalski《Understanding null, undefined and NaN.》一文 当您开始学习JavaScript时,首先需要学习的是数据类型。只要我们讨论Number、String、Boolean,Object时,还是相当清晰的,一旦涉及 阅读全文
posted @ 2021-03-09 19:45 eastsae 阅读(271) 评论(0) 推荐(0)
摘要:每次看到这个api ,就有点发懵,今天详细解析下此属性。还是先看官方文档吧: Reduce方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值。 reducer 函数接收4个参数: Accumulator (acc) (累计器) Current Value 阅读全文
posted @ 2021-03-09 19:43 eastsae 阅读(83) 评论(0) 推荐(0)
摘要:既然讲到bind,我们就不得不说call 和 apply 。在Javascript中,涉及到函数式语言风格的代码,都离不开call 和apply。那么我们在讲bind之前,就先好好分析一下call 和 apply。 call和 apply 方法是ECMAScript 3 给Function 的原型定 阅读全文
posted @ 2021-03-09 19:39 eastsae 阅读(171) 评论(0) 推荐(0)
摘要:我们都知道创建对象时,js有几种方式 • 1: 对象字面量的方式 let o = {} • 2: 通过Object.create() let o = Object.create({}) • 3: 通过new 构造函数的方式 let o = new Object() 我们分析下以上3种创建对象的相同点 阅读全文
posted @ 2021-03-07 18:24 eastsae 阅读(513) 评论(0) 推荐(0)
摘要:今天详细梳理下几种 for 循环,每种都有自己的特点和使用场景。下面我们开始梳理 说明: 所有🌰均来自 MDN 官网 1:for 循环 for 循环应该是我们使用最频繁的一种循环结构。 语法结构如下: MDN for ([initialization]; [condition]; [final-e 阅读全文
posted @ 2021-03-07 18:10 eastsae 阅读(638) 评论(0) 推荐(0)
摘要:export 命令 export var firstName = 'Michael'; export var lastName = 'Jackson'; export var year = 1958; 等同于 var firstName = 'Michael'; var lastName = 'Ja 阅读全文
posted @ 2021-03-07 10:38 eastsae 阅读(83) 评论(0) 推荐(0)
摘要:我们假设有这样的结构: .module-wrapper( :id="`${targetSelector}`+ 'wrapper'" :style="styleStr" v-show="show" :class="{border: isDrag, operated: operated}" ref="w 阅读全文
posted @ 2021-03-07 10:15 eastsae 阅读(571) 评论(0) 推荐(0)