摘要:
前端开发中总免不了关于文件的上传、下载需求。下面来总结一下常用的方法,欢迎讨论和吐槽。 form 表单提交 最传统的文件上传方法是使用form表单上传文件的,只需要把enctype设置为 multipart/form-data。这种方式上传文件不需要 js ,而且没有兼容问题,所有浏览器都支持,就是 阅读全文
摘要:
尾部添加(push) push() 方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度。 从解释中可以看出,push方法只要将要添加的元素依次放到数组的最后即可,不会改变原有数组元素的索引。所以循环参数列表,将新元素依次放到数组的最后即可。 Array.prototype._push = f 阅读全文
摘要:
摘要 近期在开发H5页面相关需求,需求中有个微信静默授权登录的功能,之前没有接触过这个功能,经过调研官方文档,开发出了初级方案;初级方案可以解决获取code,但是页面返回上一个页面时,需要连续返回两次才可以回到上一个页面。经过获取流程分析,解决了返回循环的bug。 初级方案原理 当时调研完官方文档后 阅读全文
摘要:
摘要 在开发中展示点赞数时,当数量级超过10000后,需要使用更加简洁的小数式去显现数量(例如1.22万)。下面就给大家分享数量小数式后保留两位小数的实现方式。 四色五入 使用toFixed()方法处理小数的四色五入,运行示例如下: // 四色五入 var num =2.2354234234; nu 阅读全文
摘要:
在传统网站开发中,我们一般使用比如asp、php、jsp等技术进行开发,开发完成后统一部署在服务器上,我们访问时,会在浏览器中发送带有'.asp','.php','.jsp'等后缀路径的url请求,服务器会根据对应的路由映射表,找到我们请求的页面并渲染成html,然后把html页面直接返回给浏览器展 阅读全文
摘要:
本文概述了 TypeScript 的工作原理:典型的 TypeScript 项目的结构是什么?什么被编译以及怎样编译?我们如何使用 IDE 编写 TypeScript? TypeScript项目的结构 以下是 TypeScript 项目的一种可能的文件结构: typescript-project/ 阅读全文
摘要:
JavaScript实现许愿墙效果: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0 阅读全文
摘要:
前言 在日常的开发中,整天赶需求的我们好像没有时间顾及自动化测试,尤其是在敏捷开发的时候。但其实自动化测试可以帮助我们提高代码和功能的健壮程度,大幅减少可能出现的bug。 尤其是在复杂系统中,自动化测试的作用不容忽视。本篇文章是我自己的学习记录,使用测试框架jest和前端框架react来简单梳理的自 阅读全文
摘要:
继承 定义:可以使得子类别具有父类别的各种属性和方法,而不需要编写相同的代码。在令子类别继承父类别的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类别的原有属性和方法,使其获得与父类别不同的功能。同时也能添加新的属性和方法。 实现方式 一、属性拷贝 定义:将对象的所有成员复制一份给需要继承的对 阅读全文
摘要:
Reflect对象 Reflect对象的出现主要有以下几点原因: 1. 将Object 对象上的属于语言内部的方法放到 Reflect 对象上,从 Reflect 上获得语言内部的方法 // let obj = { color: 'red' } // // Object.preventExtensi 阅读全文
摘要:
Proxy对象 在一个系统中,总要存储一些数据,对于这些数据,可能有一些是希望我们访问的,但是总有一些是中重要的,不希望我们访问的,希望保护起来,因此ES6新增了代理,在目标对象前架设个“拦截“层,外界对该对象的访问必须通过这层拦截,我们可以对外界的访问进行过滤和改写。 注意:Proxy修改了某些操 阅读全文
摘要:
正文 尾调用是函数式编程的一个重要的概念,本篇文章就来学习下尾调用相关的知识。 尾调用 在之前的文章理解Javascript的高阶函数中,有说过在一个函数中输出一个函数,则这个函数可以被成为高阶函数。本文的主角尾调用和它类似,如果一个函数返回的是另一个函数的调用结果,那么就被称为尾调用。例子: fu 阅读全文
摘要:
数据属性和访问器属性 数据属性访问器属性 共同特性 [[enumerable]] [[configurable]] 特有特性 [[writable]] [[get]] [[value]] [[set]] 设置单个属性方法 Object.defineProperty(obj, prop, descri 阅读全文
摘要:
许多算法需要交换2个变量。在编码面试中,可能会问您“如何在没有临时变量的情况下交换2个变量?”。我很高兴知道执行变量交换的多种方法。在本文中,您将了解大约4种交换方式(2种使用额外的内存,而2种不使用额外的内存)。 1. 解构赋值 解构赋值语法(ES2015的功能)使您可以将数组的项提取到变量中。例 阅读全文
摘要:
相信大家都知道登录操作都会有一个接收验证码的过程,我之前一直对这个非常感兴趣,经常问同学手机验证码是怎么搞的,但是现在我们不用手机也照样可以实现这个功能。 01 前言 其实对于手机验证码来说,一般都要收费的,免费的一般是比较少的,而且都会有数量的限制。既然我们不能使用手机验证码来发送,那么我们就以曲 阅读全文
摘要:
一、Blob 是什么 Blob(Binary Large Object)表示二进制类型的大对象。在数据库管理系统中,将二进制数据存储为一个单一个体的集合。Blob 通常是影像、声音或多媒体文件。在 JavaScript 中 Blob 类型的对象表示不可变的类似文件对象的原始数据。 为了更直观的感受 阅读全文
摘要:
1浅克隆 arr.slice(0) arr.concat() let obj2 = {... obj} 2深克隆 function deepClone(obj){ //判断参数是不是一个对象 let objClone = new obj.constructor(); if(obj && typeof 阅读全文
摘要:
为了提供新鲜、别致的用户体验,很多网站都会使用 JavaScript来改善设计、验证表单、检查浏览器,以及Ajax请求,cookie操作等等,实现无刷新动态效果 。但是,要将大量内容在浏览器呈现,如果处理不好,网站性能将会急剧下降。所以我们有必要了解下,如何提高JavaScript的执行效率。 一、 阅读全文
摘要:
当然,我们已经有可以使用的很好的Web编辑器:你只需下载,并插入页面即可。我以前习惯于使用CodeMirror和ACE。例如,我为CodeMirror写了一个插件来支持PlantUML。然而,这些编辑器有一个问题:它们难以扩展和难以理解。 当我看到这些产品的代码时,有一些我不能轻易理解,有一些我没有 阅读全文
摘要:
JavaScript使我们有能力创建动态页面。事件是可以被JavaScript侦测到的行为。网页中的每个元素都可以产生某些可以触发JavaScript函数的事件。那么,javascript的事件有哪些?本篇文章将给大家来介绍关于javascript中常用的事件。 javascript事件是什么? J 阅读全文