随笔分类 -  javascript

摘要:现在前端对于算法的要求是越来越高了,以下简单归纳下前端的几种基本的排序算法与二分查找相关的内容 二分查找 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。 在有序的数组中查询一个元素用二分查找 阅读全文
posted @ 2021-04-12 18:59 前端杂货 阅读(908) 评论(0) 推荐(0)
摘要:先严格判断类型: function getType(vari) { return Object.prototype.toString.call(vari).slice(8, -1) } 然后处理各种类型的数据: function toStringify(obj) { let str = '' swi 阅读全文
posted @ 2021-03-26 18:29 前端杂货 阅读(175) 评论(0) 推荐(0)
摘要:你有一些球的库存 inventory ,里面包含着不同颜色的球。一个顾客想要 任意颜色 总数为 orders 的球。 这位顾客有一种特殊的方式衡量球的价值:每个球的价值是目前剩下的 同色球 的数目。比方说还剩下 6 个黄球,那么顾客买第一个黄球的时候该黄球的价值为 6 。这笔交易以后,只剩下 5 个 阅读全文
posted @ 2021-03-14 01:33 前端杂货 阅读(164) 评论(0) 推荐(0)
摘要:简单的文件上传 一、准备文件上传的条件: 1、安装nodejs环境 2、安装vue环境 3、验证环境是否安装成功 二、实现上传步骤 1、前端部分使用 vue-cli 脚手架,搭建一个 demo 版本,能够实现简单交互: <template> <div id="app"> <input type="f 阅读全文
posted @ 2020-08-03 10:45 前端杂货 阅读(4695) 评论(10) 推荐(4)
摘要:1、数据类型 function getType(data) { return Object.prototype.toString.call(data).slice(8, -1) } // getType([]) --> 'Array' // getType({}) --> 'Object' 2、时间 阅读全文
posted @ 2020-07-31 11:04 前端杂货 阅读(580) 评论(0) 推荐(0)
摘要:事件起因: 公司正在做一个sso的单点登录的项目,做完之后,在测试阶段,不同的终端的兼容测试时候,好几个不同的浏览器出现了不同的问题,有登录之后自动退出,有登陆不成功等问题。 在 pc 端只有 uc 浏览器不成功,移动端有 safari、360浏览器、qq浏览器、uc浏览器等。 结果排查: 后面具体 阅读全文
posted @ 2020-07-30 13:16 前端杂货 阅读(20046) 评论(0) 推荐(0)
摘要:Node.js 所有的异步 I/O 操作在完成时都会发送一个事件到事件队列。 Node.js 里面的许多对象都会分发事件:一个 net.Server 对象会在每次有新连接时触发一个事件, 一个 fs.readStream 对象会在文件被打开的时候触发一个事件。 所有这些产生事件的对象都是 event 阅读全文
posted @ 2020-07-16 15:42 前端杂货 阅读(765) 评论(0) 推荐(1)
摘要:ES6, 全称 ECMAScript 6.0 ,2015.06 发版。ES6 主要是为了解决 ES5 的先天不足,比如 JavaScript 里并没有类的概念,但是目前浏览器的 JavaScript 是 ES5 版本,大多数高版本的浏览器也支持 ES6,不过只实现了 ES6 的部分特性和功能。 平时 阅读全文
posted @ 2020-07-08 18:04 前端杂货 阅读(4695) 评论(0) 推荐(1)
摘要:call,apply,bind call,apply,bind这三者的区别,及内部实现原理,点这里 promise promise函数的内部实现原理,点这里 闭包 闭包就是能够读取其他函数内部变量的函数。形式上,就是一个函数返回一个内部函数到函数外,内部函数引用外部函数的局部变量。本质上,闭包是将函 阅读全文
posted @ 2020-07-06 16:59 前端杂货 阅读(785) 评论(0) 推荐(2)
摘要:vue是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。 vue是一个MVVM框架,MVVM是一个MVC框架的改进版,由model-view-viewModel三块组成,由vi 阅读全文
posted @ 2020-07-05 18:55 前端杂货 阅读(968) 评论(0) 推荐(0)
摘要:promise内部实现原理: function $Promise(fn) { // Promise 的三种状态 this.PENDING = 'pending' this.RESOLVED = 'resolved' this.REJECTED = 'rejected' this.onResolved 阅读全文
posted @ 2020-07-04 17:48 前端杂货 阅读(957) 评论(1) 推荐(0)
摘要:call call 方法使用一个函数执行的时候更改本身 this 指向,并传入一个或者多个参数。 var obj = { name: '$call' } function _fun() { console.log(this.name, ...arguments) } _fun.call(obj, ' 阅读全文
posted @ 2020-07-02 16:00 前端杂货 阅读(693) 评论(1) 推荐(0)
摘要:在项目中可能需要一套代码同时部署几套环境,每一次改动就需要同时打包N次。这时就需要能够一个命令同时打包多次,省去了很多麻烦。 这里我们需要用到 concurrently 这个 npm 包,能够实现我们要的功能。 上面的 all 就相当与同时执行了 prepub:hwt、prepub:dxt、buil 阅读全文
posted @ 2019-10-21 18:07 前端杂货 阅读(9787) 评论(0) 推荐(2)
摘要:目前图片懒加载的方式主要有两种: 1、利用 getBoundingClientRect API得到当前元素与视窗的距离来判断 2、利用h5的新API IntersectionObserver 来实现 getBoundingClientRect Element.getBoundingClientRec 阅读全文
posted @ 2019-07-16 16:31 前端杂货 阅读(2122) 评论(1) 推荐(2)
摘要:记录柯里化函数实现的学习过程: 柯里化通常也称部分求值,其含义是给函数分步传递参数,每次传递参数后部分应用参数,并返回一个更具体的函数接受剩下的参数,这中间可嵌套多层这样的接受部分参数函数,直至返回最后结果。 如果要实现下面这个方法: 上面这个函数当参数为空的时候执行了内部参数所有值的相加,所以我们 阅读全文
posted @ 2018-12-28 19:24 前端杂货 阅读(3531) 评论(1) 推荐(5)
摘要:双层for循环实现方法: 递归实现方法: 如果想实现以下效果: 只需要改下递归方法的位置,如下: 阅读全文
posted @ 2018-07-05 10:59 前端杂货 阅读(6863) 评论(0) 推荐(2)
摘要:Proxy用于修改某些操作的默认行为,也可以理解为在目标对象之前架设一层拦截,外部所有的访问都必须先通过这层拦截,因此提供了一种机制,可以对外部的访问进行过滤和修改。这个词的原理为代理,在这里可以表示由它来“代理”某些操作,译为“代理器”。 上面代码对一个空对象架设了一层拦截,重新定义了属性的读取( 阅读全文
posted @ 2018-06-06 15:33 前端杂货 阅读(34750) 评论(5) 推荐(13)
摘要:Reflect是ES6为操作对象而提供的新API,而这个API设计的目的只要有: 将Object对象的一些属于语言内部的方法放到Reflect对象上,从Reflect上能拿到语言内部的方法。如:Object.defineProperty 修改某些object方法返回的结果。如:Object.defi 阅读全文
posted @ 2018-06-05 13:19 前端杂货 阅读(6012) 评论(0) 推荐(1)
摘要:第一种方法:需要设置响应类型,这里还需要安装 npm install js-file-download --save ,然后引用 var fileDownload = require('js-file-download'),使用详情见github; 如果不添加 responseType: 'arra 阅读全文
posted @ 2018-05-28 12:02 前端杂货 阅读(1171) 评论(1) 推荐(1)