随笔分类 -  javascript

摘要:1.什么是伪数组 JavaScript中存在有一种类数组,或者说伪数组。经常见到的伪数组有函数的arguments对象、dom.querySelectorAll等获取的NodeList类(NodeList本身具有forEach方法)等。 伪数组并不是数组,它没有继承Array.prototype,但 阅读全文
posted @ 2021-06-26 11:05 陌路y
摘要:一、ZIP 格式简介 ZIP 文件格式是一种数据压缩和文档储存的文件格式,原名 Deflate,发明者为菲尔·卡茨(Phil Katz),他于 1989 年 1 月公布了该格式的资料。ZIP 通常使用后缀名 “.zip”,它的 MIME 格式为 “application/zip”。目前,ZIP 格式 阅读全文
posted @ 2021-06-26 11:04 陌路y
摘要:今天分享的内容是基于GPU.js来提升性能。 正文 用 GPU.js 使你的应用程序快 10 倍。 作为开发者,我们总是寻找机会来提高应用程序的性能。当涉及到网络应用时,我们主要在代码中进行这些改进。 但是,你有没有想过将 GPU 的力量结合到你的网络应用中来提高性能? 本文将向你介绍一个名为 GP 阅读全文
posted @ 2021-06-26 11:03 陌路y
摘要:为什么WebGL会比较厉害 我们来看看javascript API绘制和webGL绘制原理上的不同之处: 如果使用javascript对画布的逐个像素进行处理,那这部分处理工作就需要在javascript的运行环境里进行,我们知道javascript的执行是单线程的,所以只能逐个逐个像素进行计算和绘 阅读全文
posted @ 2021-06-26 11:01 陌路y
摘要:ES6 的 Class 是如何实现的 先从最简单的一个 Parent 类看起: class Parent{ constructor(){ this.a = 1 this.getA = function(){} } } 转译之后的结果是: function _classCallCheck(instan 阅读全文
posted @ 2021-06-26 09:56 陌路y
摘要:分析Promise Promise对象用于表示一个异步操作的最终完成 (或失败)及其结果值,常用来实现异步操作。 Promise状态 Promise有三种状态: pending 初始状态fulfilled 执行成功后的状态rejected 执行失败后的状态 Promise状态只能由pending改变 阅读全文
posted @ 2021-06-26 09:54 陌路y
摘要:加载js || css || style const loadRes = function(name, type, fn) { // 加载js || css || style let ref if (type 'js') { // 外部js ref = document.createElement( 阅读全文
posted @ 2021-06-26 09:50 陌路y
摘要:大前端领域的Middleware 这里说的大前端领域自然就包括了服务器端和客户端了。最早提出 Middleware 概念的是Express, 随后由原班人马打造的Koa不但沿用了 Middleware 的架构设计,还更加彻底的把自己定义为中间件框架。 Expressive HTTP middlewa 阅读全文
posted @ 2021-06-26 09:48 陌路y
摘要:前言 早期的 Web 应用中,与后台进行交互时,需要进行 form 表单的提交,然后在页面刷新后给用户反馈结果。在页面刷新过程中,后台会重新返回一段 html 代码,这段 html 中的大部分内容与之前页面基本相同,这势必造成了流量的浪费,而且一来一回也延长了页面的响应时间,总是会让人觉得 Web 阅读全文
posted @ 2021-06-26 09:46 陌路y
摘要:常规方案 使用 FileReader 以utf-8格式读取文件,根据文件内容是否包含乱码字符 � ,来判断文件是否为utf-8。 如果存在 �,即文件编码非utf-8,反之为utf-8。 代码如下: const isUtf8 = async (file: File) => { return awai 阅读全文
posted @ 2021-06-26 09:45 陌路y
摘要:1.html标签内联事件 实例1:单击页面 "Hello" 按钮,弹出提示框显示 Hello world! <!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> </head> <body> <button 阅读全文
posted @ 2021-06-26 09:42 陌路y
摘要:什么是Proxy代理? // pOjb就是通过new Proxy创建的代理对象 var pObj = new Proxy(obj, handlers) 为什么需要代理对象 举个记账的例子: // obj代表我们,wallet属性指我们钱包,现在我们钱包里有100元 // consume指消费次数,每 阅读全文
posted @ 2021-06-24 18:52 陌路y
摘要:JavaScript 具有垃圾自动回收机制(Garbage Collection)简称 GC。垃圾回收机制会中断整个代码执行,释放不可能再被使用的变量,释放内存,这个工作机制是周期性的,我们会在下文详细探讨。 可释放对象 function fn1() { var obj1 = { name: 'xi 阅读全文
posted @ 2021-06-24 18:51 陌路y
摘要:前言 在产品快速迭代的中,由于追求开发速度,我们往往忽略代码的可读性与扩展性,不合理的使用if-else条件判断会使我们的程序复杂度大大提升,同时也会使代码的可读性急速下降,后期维护难度也大大提高,真的让人脑壳疼。比如下方示例: // 贷款申请操作的处理 function check() { // 阅读全文
posted @ 2021-06-24 18:48 陌路y
摘要:1.声明和初始化数组 我们可以使用特定的大小来初始化数组,也可以通过指定值来初始化数组内容,大家可能用的是一组数组,其实二维数组也可以这样做,如下所示: const array = Array(5).fill(''); // 输出 (5) ["", "", "", "", ""] const mat 阅读全文
posted @ 2021-06-24 18:46 陌路y
摘要:一、基本声明方式 1、方式一 let s1 = Symbol() let s2 = Symbol() console.log(s1) // Symbol{} console.log(s2) // Symbol{} console.log(s1 s2) // false 说明每一个Symbol用这种方 阅读全文
posted @ 2021-06-24 18:44 陌路y
摘要:首先,这个例子用到了服务端渲染的技术。服务端渲染,说白了就是在服务端使用模板引擎,这里我先简单的介绍一下服务端渲染与客户端渲染之间的区别。 服务端渲染与客户端渲染之间的区别: 客户端渲染不利于搜索引擎优化 服务端渲染可以被爬虫抓取到,而客户端异步渲染很难被爬虫抓取到(例如:AJAX) 大部分的网站既 阅读全文
posted @ 2020-12-14 12:04 陌路y
摘要:背景 今天写需求的时候发现一个小的优化点:用户选择了一些数据之后, 对应列表中的数据需要高亮, 有时候列表很长, 为了提升用户体验,需要加个滚动, 自动滚动到目标位置。简单的处理了一下, 问题顺利解决, 就把这个小技巧分享一下给大家。 正文 有几种不同的方式来解决这个小问题。 1.scrollTop 阅读全文
posted @ 2020-12-12 12:28 陌路y
摘要:在经过初始化阶段之后,即将开始组件的挂载,不过在挂载之前很有必要提一下虚拟Dom的概念。这个想必大家有所耳闻,我们知道vue@2.0开始引入了虚拟Dom,主要解决的问题是,大部分情况下可以降低使用JavaScript去操作跨线程的庞大Dom所需要的昂贵性能,让Dom操作的性能更高;以及虚拟Dom可以 阅读全文
posted @ 2020-12-12 12:27 陌路y
摘要:拖拽的实现 在html5还未普及之前,实现元素的拖拽还算是一件比较麻烦的事,大概思路就是监听鼠标移动相关事件,下面是伪代码 odiv.onmousedown = function(ev){ //记录起始位置 } document.onmousemove = function(ev){ //移动目标元 阅读全文
posted @ 2020-12-12 12:25 陌路y