JavaScript
文章平均质量分 52
炸_洋芋
程序的路上,洒家和你一起成长
展开
-
如何使ajax请求按顺序执行
最近在公司遇到了一个难点,就是公司的上传接口,如果两个文件同时上传,也就是同时调用这个接口,那么就会报错,然后我就发现了,一个一个挨着调用不会报错,也就是说上一个请求完事了,下一个请求接着上,就没事,我苦思冥想,再加上百度一下。。。终于搞出来了,有两种方案,我选择的第二种,第一种也记录一下。原创 2024-01-14 15:30:03 · 670 阅读 · 0 评论 -
js中window自带的四舍五入toFixed方法中的坑以及解决办法
今天我们来聊聊Window.toFixed吧,曾几何时,如果你说,有一个小数,我要你保留两位小数,我一定会很自信的祭出toFixed,But,让我们一起来看看以下效果。原创 2023-03-09 15:45:32 · 649 阅读 · 1 评论 -
js方法解决计算精度的问题,比如0.1+0.2不等于0.3的问题
hello!各位,我又回来了,很长时间不更新了!项目忙!还有私事忙啊!特别忙!我能说自己懒吗?啊?好了,进入正题,项目中遇到一个问题,就是手动输入数字,要联动计算,果然,英俊帅气的我还是翻车了,js还是没有避免底层计算机丢失精度的问题,就好像0.1+0.2不等于0.3一样,它们永远不可能在一起!!!但是我是谁?我是你最帅的三哥啊!我查阅了一些资料,并整理了下思路,然后写出了这个工具函数,大体思路就是,把小数部分转换成整数进行计算,然后再转换回去,而且处理下数据的丢失精度问题!啥也不说了,直接上代码原创 2021-07-09 16:09:13 · 935 阅读 · 0 评论 -
js实现并集、差集、交集(ES6语法)
面试中遇到的问题,如何求两个数组之间的并集、差集、交集,我一开始并不知道有ES6这么简单的语法,下意识的认为要靠for循环实现,但是回来一看,用ES6的Set类型,一句话就出来了,我一查,啪!它就一句话就出来了,很快啊!不说了,全是泪!上代码! let arr1 = [1,2,3]; let arr2 = [2,3,4]; let set1 = new Set(arr1); let set2 = new Set(arr2); //求并集原创 2021-02-04 15:35:11 · 3289 阅读 · 0 评论 -
js中ES5继承的6种方式以及优缺点
这个问题我认为是面试必问的,鄙人就很幸运的被问到了这个问题,emm…我只会其中的一种或者两种,但是回答的也是支支吾吾的,回来我就下定决心搞一搞,查查资料,把这几种继承都看明白,毕竟是js的基础,咱也是有上进心的人不是?下面进入正题:首先想要继承,得有个爸爸!我们先来搞一个帅气的父类//父类 function Person(name){ this.name = name; this.sum = function(){原创 2021-02-04 15:06:41 · 872 阅读 · 6 评论 -
用jQuery实现瀑布流及滚动懒加载(兼容IE8)
上篇js原生瀑布流并实现滚动懒加载(兼容IE8)讲解了瀑布流的原理及滚动懒加载的原理,并用原生js实现了效果,那么原生js必定有些繁琐和麻烦,这一篇我们就换成jQuery,代码会简洁很多,思路和原理我就不赘述了,如果想看的话,移步js原生瀑布流并实现滚动懒加载(兼容IE8)就可以了废话不多说我们直接上代码,思路和原理跟原生js一模一样html部分:<!DOCTYPE h...原创 2018-09-28 09:50:01 · 1522 阅读 · 0 评论 -
js 对象和字符串之间的互换
平时在工作中大家一定也有过这样的需求,就是有时候需要把一个json对象转换为字符串,有时候要把一个类似json对象的字符串转换为json对象,那么今天就来总结一下,js的方法1.json对象转字符串这个API很简单就是 JSON.stringify() ,只需要把你要转换的对象写到括号里就行了,下面有一个小demolet json = { msg:"json转字符串"...原创 2018-12-28 10:36:16 · 1126 阅读 · 0 评论 -
localStorage设置过期时间
众所周知,前端三大缓存,cookie,sessionStorage,localStorage,cookie空间太小,一旦大了,会消耗流量,知识和存一些登录会话信息,而sessionStorage的过期时间就是关闭浏览器,是个临时会话窗口,但是,最近这个差点把我坑了,就是sessionStorage只能在同一标签下共享,加入你把网址复制粘贴到新打开的标签页里面,你会惊喜的发现,what?居然不共享,...原创 2019-01-30 15:02:36 · 99531 阅读 · 20 评论 -
原生js封装cookie插件
最近迷上了react,用react模拟之前的系统,做登录的时候,发现需要用到cookie,之前用的跟vue搭配的VueCookie,我就在想啊,react应该也会有相应的cookie插件吧!百度一下,果然,是有的,那就是react-cookie,看名字貌似很专业的样子哈我也去百度了下他的用法,官网搞的很复杂,可能是本人水平太低了,官网咱也看不懂,咱也不敢说,咱也不敢问的,可怜巴巴!于是我用...原创 2019-06-21 16:42:40 · 1597 阅读 · 0 评论 -
js平时有可能用到的的函数工具
今天来向各位分享以下js常见的函数工具,比如数组去重啦,获取url地址啦!各种,今天我也算是记笔记了,以后有新的再补充,好了,不多说了,下面直接上代码!还是先说一句吧!三哥最帅!三哥是最棒的!!!!1.数组去重复duplicate(arr,type){ var newArr = []; var tArr = []; if(arr.length...原创 2019-07-08 15:10:22 · 477 阅读 · 0 评论 -
js正则表达式知识点和方法
最近突然对正则表达式又感兴趣了,可能有些人要用正则表达式的时候,直接百度,比如验证邮箱,手机号啦,直接百度正则表达式,直接复制粘贴过来用,实不相瞒,我跟大家一样,也是这么用,慢慢的正则表达式的知识点和一些方法,就已经渐渐忘记了,只能用百度了,成为一个实实在在的代码搬运工,我觉得这样不行,于是我就潜下心来,研究下正则表达式,起码过一遍知识点也是好的嘛以下知识点我基本都是截图的形式定义let ...原创 2019-07-05 11:09:36 · 421 阅读 · 2 评论 -
js原生瀑布流并实现滚动懒加载(兼容IE8)
最近公司接的新项目,客户要求要把图文列表的形式给写成瀑布流的形式,what?我仔细一想,应该不是很难,毕竟前端是万能的嘛,嘿嘿,之前我也听过瀑布流布局,比如淘宝,天猫等都是用的瀑布流布局,我不知道怎么生成的,于是我就上网找插件,有些插件还不错,不过我想自己写自己的代码,我看别人代码,主要看瀑布流的原理,然后根据原理自己写代码,然后再看慕课网之类的教学网站汲取经验,终于一个瀑布流被我搞出来了,本篇是...原创 2018-09-28 09:38:14 · 4230 阅读 · 3 评论 -
js数组去重以及数组内对象去重
大家在写项目的时候一定遇到过这种逻辑需求,就是给一个数组进行去重处理,还有一种就是给数组内的对象根据某一个属性,比如id,进行去重,下面我写了两个函数,都是可以达到这个效果的,一个是纯ES5的去重办法,一个是用了ES6的 Array.from(new Set())和ES5的reduce来进行去重 我先定义两个数组吧var arr = [1,2,3,5,3,4,5,6,6,"test","...原创 2018-07-13 11:57:20 · 4878 阅读 · 1 评论 -
select标签的onchange事件
以前按我也不太清楚 <select></select>标签的改变是怎么样的,现在明白了是onchange事件,上代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <link rel="stylesheet&q原创 2017-08-02 12:07:07 · 23464 阅读 · 0 评论 -
通过js控制输入的字数
有两种控制字数的形式,一种是一个字母、一个空格占两个字节,汉字占两个字节,一种是一个字母占一个位置,一个汉字也占两个字节,下面写这两种的代码:第一种形式的控制输入的字数代码:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <style type原创 2017-08-18 14:26:10 · 3048 阅读 · 0 评论 -
js如何添加鼠标右击事件
项目中用到了鼠标右击事件,在这里就当作几个笔记吧直接上代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title></head><body> <button id = "btn1">点击我右击<原创 2017-09-22 15:03:10 · 36133 阅读 · 3 评论 -
js利用对象的defineProperty来进行变量的监控
以前觉得检测变量angular的$watch还挺好用的,但是一旦离开angular就无法下手了,今天看到一个方法,觉得挺好的,可能还有别的办法,我会继续探索的贴上代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head>原创 2017-09-22 15:45:21 · 1030 阅读 · 0 评论 -
利用canvas中的measureText测量字体的宽度
工作项目中用到的东西,要限制一个容器的宽度,超过了这个宽度就要显示展开按钮,点击展开按钮要全部展示出来,可以用css的加省略号的那个,但是有时候这个还不行,我就自己想办法,突然想到canvas中有个measureText函数可以测量字体的宽度,于是我就想着用这个函数来测出句子的宽度来,然后和容器的宽度进行比较,这样就可以了,那我就来写个demo来演示一下如何测量<!DOCTYPE html><ht原创 2017-11-01 15:02:04 · 7886 阅读 · 0 评论 -
随着浏览器窗口变化而变化的函数
在工作中遇到了定义一个容器,但是这个容器是拿百分比控制的,随着浏览器的窗口的变化,里面的元素的变化会跟这个容器的宽高有着密切的关系,那么动态获取这个容器的宽和高就是关键所在了,那么今天就介绍一下如何随着浏览器窗口的改变而做一些事情,下面写一个简单的demo1.如果用jQuery的话var num = 0;$(window).resize(function() { console.log(原创 2017-11-03 10:55:27 · 1530 阅读 · 0 评论 -
删除数组对象中的项,再往数组对象里新增
在公司做过的项目中曾经遇到过这种问题,就是比如var arr = [ { id:1, "name":"唐僧" },{ id:2, "name":"孙悟空" },{ id:3, "name":"猪八戒" }]就比如这么一个数组对象,讲这个之前我首先要说原创 2018-01-25 12:00:02 · 1378 阅读 · 0 评论 -
巧妙地利用时间(js中的Date对象)来生成绝对不会重复的id
接着上一篇博客说,本来利用nodejs,操作本地json文件的时候,如果是新增的话,肯定是要给新增的数据一个唯一识别的id,我上网查了很多方法,说是用数组什么的方法,我觉得太复杂,后来我看到电脑右下角的时间,灵机一动,为什么不利用js 中的 Date对象来生成绝对不重复的id值呢,而且每一次生成的时候,时间肯定是不一样的,再利用时间的13位毫秒数来当做id就是了,说干就干上代码&lt;...原创 2018-04-11 17:03:37 · 3499 阅读 · 4 评论 -
使用ES6新特性async await进行异步处理
我们往往在项目中会遇到这样的业务需求,就是首先先进行一个ajax请求,然后再进行下一个ajax请求,而下一个请求需要使用上一个请求得到的数据,请求好了还好说,如果多了,就要一层一层的嵌套,就好像有点callback的写法了,那是相当恶心的,下面我就来讲一下如何使用ES6的新特性async await进行异步处理,使上述情况就好像写同步代码一样,首先我们先举个例子: 先写上json文件: cod...原创 2018-07-12 15:56:30 · 76759 阅读 · 42 评论 -
利用js来判断浏览器的型号及版本
之前突然想到了这个问题,之前还没有搞过,突然想研究一下,我只知道可以用windows的navigator属性来判断,于是结合网上一些大神的代码,以及自己写的代码,终于可以了,但是有一个问题,就是IE7和IE5没办法判断,信息都是一样的,希望有解决这一问题的小伙伴,能提供点办法,但是不影响正常使用倒是,因为估计没有什么需求是到IE7了吧,如果有,那么,祝你好运!!!下面贴上代码&lt;!DOCT...原创 2018-07-06 15:01:38 · 713 阅读 · 0 评论 -
监听滚动条事件
以前博主并不知道滚动条是怎样的原理,看了一篇博客,明白了滚动条滚动的原理,下面我来说一说滚动条的原理:首先理解三个dom元素,分别是:clientHeight、offsetHeight、scrollTop。clientHeight:这个元素的高度,占用整个空间的高度,所以,如果一个div有滚动条,那个这个高度则是不包括滚动条没显示出来的下面部分的内容。而只是单纯的DIV的高度。offsetHeigh原创 2017-08-02 11:41:09 · 5526 阅读 · 0 评论