
js
Lawrence666
一个执着的前端
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
var与let,const 以及 var的 变量提升
变量提升的概念:使用var声明的变量可以在声明之前被调用,其值为undefined;console.log(a);var a=1;console.log(a);// undefined// 1变量提升只局限于当前的函数,不会提升到函数外面console.log(a)// var a = 1;// console.log(a)var fn = function (...原创 2020-04-24 23:08:46 · 589 阅读 · 0 评论 -
箭头函数与function定义函数区别
箭头函数与function定义函数this指向箭头函数只指向定义环境,function传统函数随着调用的环境的改变而改变,没有调用者this就是windowfunction会随着调用者的变化而改变执行体的this指向,this始终指向调用者,如果没有调用者就指向window箭头函数会捕获其所在上下文的 this 值,作为自己的 this 值,定义的时候就确定了,无论被谁调用都不...原创 2020-04-24 22:02:57 · 571 阅读 · 0 评论 -
webpack-loader记录
loader的意义就在于他可以帮你"改代码"比如说,你在一个js文件里写了一行“错误”的代码,loader可以识别到这些代码并且将它转换为正确的代码。最好的例子就是jsx写法,当在js文件中没有别的配置,直接写jsx必定是报错的,但是jsx可以被jsx-loader识别后转换为了CreateElement的函数表达式,然后再交给js引擎去执行,那么我们的错误代码也可以运行起来了。这可以配合...原创 2020-04-21 22:59:44 · 148 阅读 · 0 评论 -
给数字加千分位
这个是比较常见的业务场景了,个人还是喜欢用正则来处理而非手动js切割处理,正则效率更高,写的比较简略,有遇到不能处理的场景再来补充直接上代码const thousandRegex = /(\d)(?=(\d{3})+\.)/g;/** * * @param {Number,String} num 格式化目标 * @param {Number} precision 精度 ...原创 2020-04-20 20:13:53 · 281 阅读 · 0 评论 -
获取浏览器类型,可扩展的写法
const rules = [ { name: "Opera", includes: ['Opera'], }, { name: "Edge", includes: ['Edge'], }, { name: "Firefox", includes: ['Firefox'], }, { name: "Opera", includes: ['Opera'], }, { name: "Chr...原创 2020-04-20 20:08:41 · 135 阅读 · 0 评论 -
管理网络请求的与缓存请求数据,提高性能
网络请求的往往是限制前端新能的重要因素,页面的卡顿往往不是前端渲染的问题而是请求数据慢或者频繁请求导致的。大型复杂的业务更加需要做请求的缓存,同时又要有细粒度的控制能力,哪些请求可以缓存,哪些请求不需要缓存,哪些请求可以直接存到localStorage里,哪些只在当前页面做缓存,以及何时应该清理缓存。为了解决以上问题,我们自己封装了一个强大的createService方法,可以高效,便捷,细粒度去...原创 2020-04-20 20:04:13 · 210 阅读 · 0 评论 -
树结构处理最佳实践
最近实际开发过程中经常遇到需要处理树形数据结构,每次都要写一遍递归,感觉比较麻烦,各个组员的写法也不统一,于是想自己写一套终极版本,希望能够兼顾复杂的业务场景和代码执行效率直接上代码和大家分享一下,欢迎指正。/** * * @param {Array} tree [{label,value,children}] * @param {Object} option * {...原创 2020-04-20 19:45:45 · 287 阅读 · 0 评论 -
XMLHttpRequest 用法解析
XMLHttpRequest构造函数,用于创建一个XMLHttpRequest实例newXMLHttpRequest()实例方法 :XMLHttpRequest.abort()如果请求已被发送,则立刻中止请求。XMLHttpRequest.getAllResponseHeaders()以字符串的形式返回所有用CRLF分隔的响应头,如果没有收到响应,则返回null。...原创 2020-04-12 14:54:00 · 1180 阅读 · 0 评论 -
js的== 抽象相等比较算法
http://lzw.me/pages/ecmascript/#203抽象相等比较算法比较运算x==y, 其中x和y是值,产生true或者false。这样的比较按如下方式进行:若Type(x)与Type(y)相同, 则 若Type(x)为Undefined, 返回true。 若Type(x)为Null, 返回true。 若Type(x)为Number, 则 若x为...转载 2020-04-12 14:27:26 · 209 阅读 · 0 评论 -
js事件循环
https://www.jianshu.com/p/184988903562可以这么理解,js在不断地按顺序执行函数(任务),但是函数(任务)被分为3类,最普通的同步函数,一类叫宏任务,一类叫微任务遇到同步任务直接执行,遇到异步任务分类为宏任务(macro-task)和微任务(micro-task)。宏任务:整体的Script setTimeout setInterval微任务...原创 2020-03-18 02:01:28 · 309 阅读 · 0 评论 -
npm mysql 学习笔记
npm模块mysql模块是node端操作mysql数据库的模块说说麻烦,还是官网讲的全面https://www.npmjs.com/package/mysql直接上代码const config = { host: "localhost", port: "3306", user: "root", password: "root", datab...原创 2019-03-20 21:29:11 · 804 阅读 · 0 评论 -
express学习笔记
express是 基于Node.js平台,快速、开放、极简的 Web 开发框架。很多node后端框架都是基于express构建的,得益于express简单和开放的设计。此文是基于express4.x 的。一 安装步骤:1 安装node环境2 npm init3 npm i express --save二 完成 hello world:main.jscon...原创 2019-03-20 21:08:27 · 270 阅读 · 0 评论 -
深入理解ES7的async/await
参考原文:https://blog.youkuaiyun.com/sinat_17775997/article/details/60609498在js中我们可以使用Promise方便地进行异步操作,但是有时候会有两个异步操作之间需要保证先后关系,比如请求一次数据A,A数据得到后然后再请求数据B。要解决上述问题,以往情况下我们可以在请求A数据的Promise的then中再new 一个Promise来...原创 2018-07-23 16:51:15 · 748 阅读 · 2 评论 -
使用input选择图片并预览和上传
待续~原创 2018-07-23 16:53:19 · 1028 阅读 · 2 评论 -
js调用摄像头并截图
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title></head> <body> <video id="video"原创 2018-07-23 16:54:08 · 2453 阅读 · 2 评论 -
js中的FileReader
<!DOCTYPE html><html><head> <meta charset="utf-8"> <title></title></head><body> <input id='file' type="原创 2018-07-23 16:54:35 · 1199 阅读 · 0 评论 -
js中的import ,export ,exports,module.exports, require
在js中,import可以导入另个文件中的export的东西。而需要注意的地方是,js仿佛有着Spring容器一般东西,任何东西只要被导入一次过,在下一次导入(比如在另一个js文件里又导入了同一个东西),那么这两个东西是同一个。因此,基于这一点,在js中我们可以非常自然地做到单例模式。比如如果我们需要一个数据的容器 DataPool,并且我们希望这个容器是全局唯一,全局可访问的,那么我们可以在一个...原创 2018-07-22 22:50:11 · 1521 阅读 · 0 评论 -
在react中自己实现双向帮绑定
function bind(component,arr){ const _com={}; arr.forEach(item => { _com[item]=component.item; Object.defineProperty(component,item,{ get:function(){ ...原创 2018-07-22 22:54:24 · 230 阅读 · 0 评论 -
自己实现Promise
class MyPromise { constructor(func) { this.task = []; this.errTask=undefined; this.ball = null; this.status=undefined; setTimeout(() => { f...原创 2018-07-22 22:55:11 · 201 阅读 · 0 评论 -
moment.js使用笔记
介绍:moment.js是一个专门用来处理时间的函数库,可以在浏览器和node.js环境中使用。安装:npm i moment --save使用:import moment from 'moment' const moment = require('moment')这里引入的moment其实就是一个函数,会根据传入的参数返回一个moment实例moment实例实际上就对...原创 2019-02-27 17:23:08 · 2532 阅读 · 0 评论 -
正则表达式中的?! , ?=
let re=/^(?=.*[A-Za-z])(?!.{16,})([A-Za-z'-]*[\s]?[A-Za-z'-]*)$/上面这样的正则表达式,相比第一次遇到的童鞋都会感到奇怪。这里就来解释一下。查过一些资料,这种?=,?!的写法其实一种预先判断的写法,需要用小括号包起来。比如 ?=.*[A-Za-z])这部分就是先判断一下这个字符串是不是符合.*[A-Za-z]格式的,符合则...原创 2018-07-23 16:50:28 · 1773 阅读 · 0 评论