一文带你读懂javascript中的箭头函数-编程思维

箭头函数 箭头函数表达式的语法比函数表达式更简洁,并且没有自己的this,arguments,super或new.target。箭头函数表达式更适用于那些本来需要匿名函数的地方,并且箭头函数不能用作构造函数。 语法 (param1, param2, …, paramN) => { statements } (param1, param2, …, paramN) => expres

前端下载超大文件的完整方案-编程思维

本文从前端方面出发实现浏览器下载大文件的功能。不考虑网络异常、关闭网页等原因造成传输中断的情况。分片下载采用串行方式(并行下载需要对切片计算hash,比对hash,丢失重传,合并chunks的时候需要按顺序合并等,很麻烦。对传输速度有追求的,并且在带宽允许的情况下可以做并行分片下载)。 测试发现存一两个G左右数据到IndexedDB后,浏览器确实会内存占用过高导致退出 (我测试使用的是chro

编码揭秘:解构字符%20背后的秘密与百分号编码艺术-编程思维

前言 提到这个 %20,想必大家都见过,熟悉一点编码的人,还会知道这玩意就是空格转换而来! 那么我们一起破解, 如何编码而来? 我们今天继续学习前端编码知识, 其他编码文章: 前端Base64编码知识,一文打尽,探索起源,追求真相。 localStorage灵魂五问。 5M?? 10M !!! 字母a的6种表示方法,以及其背后的编码知识 之后再补上 UTF-16 编码 UTF-8 编码

如何使用 javascript 导入和导出 excel-编程思维

前言 在现代的Web应用开发中,与Excel文件的导入和导出成为了一项常见而重要的任务。无论是数据交换、报告生成还是数据分析,与Excel文件的交互都扮演着至关重要的角色。本文小编将为大家介绍如何在熟悉的电子表格 UI 中轻松导入 Excel 文件,并以编程方式修改表格或允许用户进行编辑,最后使用葡萄城公司的纯前端表格控件SpreadJS组件它们导出回 Excel 文件。 我们将按照以下步骤介绍

html5抽奖转盘-css3超简单版本-编程思维

  网上有很多关于抽奖转盘的代码和实例,有使用JavaScript控制动画的,有使用Canvas实现的,它们思路各不相同,本文将介绍一种采用CSS3的方式来实现转盘动画效果,非常简单,只需几行代码即可实现。   核心思路 采用CSS3的transition(过渡效果),给定需要旋转的元素设置transform的rotate属性的结束角度,同时添加transition-timing-functi

amd、request.js,生词太多,傻傻搞不清-编程思维

前言 之前在公司用JS写前端页面,本来自己是一个写后端的,但是奈何人少,只能自己也去写了。但是自己对前端基本不懂,基本就是照着前人写的照着抄,反正大体意思是明白的,但是出现问题了,基本上也是吭哧吭哧好几天,也能解决,但是由于自己对前端这一套是一点都不懂,导致效率很低,而且经常返工。后来稍微学习了一波,了解了这个AMD规范和require.js。 因为公司用的是这个require.js,所有这里就

promise的并行和串行-编程思维

Promise 并行 这个功能Promise自身已经提供,不是本文的重点。主要是依赖Promise.all和Promise.race。 Promise.all是所有的Promise执行完毕后(reject|resolve)返回一个Promise对象。 Promise.race是任意一个Promise对象执行完毕后返回一个Promise对象。 有人可能会说,不是Promise对象reject的时候

一行能装逼的javascript代码的延伸-编程思维

前段就是坑,入坑水真深。 先看看一个黑科技, 纳尼,这是什么东西。 (!(~+[])+{})[--[~+""][+[]]*[~+[]] + ~~!+[]]+({}+[])[[~!+[]]*~+[]] 贴入浏览器执行一看,你个XX,你给老子等着。。。。。。。 然并卵。 作为一般的青年就此笑过, 可是我不是一般的青年,我是二到无穷的青年。你给老子讲清楚你这sb怎么出来的. 在一行能装逼的JavaS

深入__proto__和prototype的区别和联系-编程思维

前话 有一个一个装逼的同事,写了一段代码 function a(){} a.__proto__.__proto__.__proto__ 然后问我,下面这个玩意a.__proto__.__proto__.__proto__是啥,然后我一脸懵逼,prototype还知道一点,这个__proto__,还来三个,是个什么鬼。于是我一直不能放下这个问题,虽然我很懒,很不喜欢费脑子,但是这个坎还是过不去,

koa-router源码分析-编程思维

koa-router源码地址是 koa-router 当前解读版本为7.2.1 关系图 代码结构图 执行流程图 关系对应图 Router方法和属性浅析 methods.forEach 注册注册路由的方法,结果就是Router的原型上面多了get,post,delete,del等注册路由的方法 代码使用的时候 r1.get就是这么来的 r1.get('/test1/:id', functio

重要但是少用的运算符-编程思维

先了解 1.原码,反码,补码 正数的反码和补码都与原码相同。 负数的反码为对该数的原码除符号位外各位取反。 负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1    2. 负数在计算机中是怎么存的 首先声明在计算机中负数的存储是采用二进制补码的形式的 以-3为例,32位为基础: 原码:00000000 00000000 00000000 00000011 反码:11111111

session history 属性和方法-编程思维

History 接口允许操作浏览器的曾经在标签页或者框架里访问的会话历史记录。 js通过window.history来访问和操作的,操作的范围是某个tab的会话历史记录。 这个tab打开后,tab内的跳转或者你手动输入的地址,都在控制范围内。 属性 1. History.length 返回一个整数,该整数表示会话历史中元素的数目,包括当前加载的页。例如,在一个新的选项卡加载的一个页面中,这个属性

redux源码分析之applymiddleware-编程思维

Redux源码分析之基本概念 Redux源码分析之createStore Redux源码分析之bindActionCreators Redux源码分析之combineReducers Redux源码分析之compose Redux源码分析之applyMiddleware  Redux 最为经典我觉得就是compose 和 applyMiddleware 了。 还是先借一张图,描述的非常准确,

canvas小程序-快跑程序员-编程思维

canvas不用说html5带来的好东西,游戏什么的,么么哒 记得有一天玩手机游戏,就是一个跳跃过柱子那种,其实元素很简单啊,app能开发,借助html5 canvas也可以啊,于是就开始了。 ------------------------------------------------------------------------------------------------------

我的web聊天之---序章-编程思维

有时候自我感觉良好,人啊就开始膨胀,细细想来,自己还是那么苍白。---- 致傻傻的我   大家都知道,平时上班总是拿着手机看看微信,看看新闻,这个不太好,这不是重点,重点是我们公司web版本的微信,QQ都上不去,这也不是重点,若我还是单身。现在有媳妇指令的时候,总是接收不到,这个不太好。 于是就想自己写一个聊天的好了,是男人说干就干呗。   功能需求 1. 文本消息 2. 消息提示,因为是web

file api文件操作之filereader-编程思维

近来研究点对点的文件传输,想到一种方案FileReader+WebRtc。 当我看到FileReader的时候,哎呀,不错的东西啊,仔细一看属于File API,或者叫做Web API。 File API 官方的文档  File API MDN的Web APIs|MDN MDN的 web引用中使用文件 其主要由,FileList,Blob,File,FileReader等组成。 这里我们主要探讨

file api文件操作之filereader二-编程思维

上一篇说了FileAPI中FileReader的readAsText,这里继续上文,说说另外一个API readAsDataURL。 这个接口是将File或者Blob读成base64格式的字符串,然后直接挂在HTML5的元素上,例如img就可以直接使用。 实际用途可以是图片预览和图片剪裁,这里我将用来实现图片剪裁。 思路: 1. file api的FileReader实现本地图片预览   2.

javascript数值千分位格式化的方法和性能-编程思维

瞎掰的前提 前端嘛,经常处理数值和时间。 所以数值和时间的格式化少不了。 最近一直在面试前端, 就出了一个如何给数值添加千分位的面试题。 至于答案,我一直都有一种标准, 一是基于你现有的知识可以实现, 二是超出你知识。 有人说, 不就一个千分位, 分分钟解决你, 正则万岁。 没错, 正则很帅, 那么性能呢? 我就喜欢一本正紧的瞎掰。 好了, 进入正文。 实现 如下有的方法,稍微改造,就可以变

监测元素resize-编程思维

前言 近来有需求要做分页,听起来可能有点Low。 所以我要把Low的事情做得有点逼格。 分页本身没啥,但是数据量起来了,比如十万。 要是不做点处理, 那你的页面估计爽得很,机器也爽得很。 放心,我不会让你这么爽。 大量数据展现方案 比较流行的当然是虚拟滚动(无限滚动)。 始终展示的是有限的固定节点。 外层创建滚动层。 一句话,就是反复利用固定节点展现数据。 其中还有两个点 何时需要加载新的分