JS
文章平均质量分 51
本专栏主要收录与javascript相关的文章,追踪最新技术前沿,把握时代动脉。
任磊abc
关注前端,热爱前端,追踪前端最前沿
展开
-
前端加密的方式汇总
随着信息和数据安全重要性的日益凸显,如何保证信息数据在传输的过程中的安全成为开发者重点关注的内容。前端加密通常是指在浏览器中对各种传输的数据进行各种加密操作。然而前端加密更多的是用来对传输的数据进行简单的混淆,为了确保数据在传输过程中不被轻易的篡改和读取。可供我们选择的加密方式有很多种,需要我们在开发过程中根据实际的场景选择适合自己的加密解决方案。那么,本文将结合应用场景来介绍一下前端开发中常用的加密方法。原创 2024-05-28 10:35:40 · 3489 阅读 · 0 评论 -
js关于防抖和节流的问题
防抖和节流的话题,无论是在面试还是在实际场景的应用过程中都,是一个出现频率很高的话题。本文就这两个话题,做一个全面的梳理。原创 2024-03-11 17:57:17 · 687 阅读 · 0 评论 -
JS中使用bignumber.js处理大额数据进行高精度小数运算的实战方法
JS中使用bignumber.js处理大额数据进行高精度小数运算的实战方法原创 2024-02-26 17:19:49 · 3459 阅读 · 2 评论 -
js计算大额数据当中丢失精度以及消除科学计数法解决方案—decimal.js的使用
js计算大额数据当中丢失精度以及消除科学计数法解决方案—decimal.js的使用原创 2022-05-18 11:49:23 · 5337 阅读 · 0 评论 -
a标签设置下载设置文件名,并且设置无效的解决方法
设置 a 标签的 download属性,可以重置 文件名。如下代码,文件名重置为 file.xlsx。<a href='http://192.168.1.1/abcd.xlsx' download='file.xlsx'>下载</a>这种写法有个前提:href 的下载地址 和 当前网站地址 必须是 同源的,否则download不生效。如果不同源,还有一种方法,代码如下:// 封装一个download方法const download = () => {.原创 2022-03-16 14:28:25 · 9482 阅读 · 1 评论 -
JS实现简单的天、时、分、秒倒计时代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>js简单时分秒倒计时</title> <script type="text/javascript"> function countTime() { //获取当前时间 .原创 2022-01-13 14:40:02 · 308 阅读 · 0 评论 -
分享 12 个解决日常工作问题的JS 代码片段
在本文中,我将分享 12 个有用的 JavaScript 片段。可以帮助您解决日常开发中的一些问题,希望通过这些代码的学习,加快您的开发速度并节省您的宝贵时间!1、破坏赋值在 JavaScript 中,您可以使用析构方法将数组中的值解包并将它们分配给其他变量。// 1. Destructive Assignmentconst data = ["Paul", "too old", "Software Engineer"]const [name, age, job_title] = data原创 2022-01-06 10:13:40 · 203 阅读 · 0 评论 -
JS实现千位分隔符,用于处理金额
有时候处理金额的时候,会将金额进行千分位分割,其实一个很简单的函数即可搞定。function money_format(money) { if (money !== undefined) { const arr = money.toString().split('.'); return ( (arr[0] || 0).toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') + .原创 2021-11-17 15:39:13 · 1095 阅读 · 0 评论 -
javascript将对象转换为url参数
function filter(str) { // 特殊字符转义 str += ''; // 隐式转换 str = str.replace(/%/g, '%25'); str = str.replace(/\+/g, '%2B'); str = str.replace(/ /g, '%20'); str = str.replace(/\//g, '%2F'); str = str.replace(/\?/g, '%3F'); str = str.replace(/&/g.转载 2021-06-03 14:25:41 · 2658 阅读 · 0 评论 -
JS:Uint8Array 数组类型、arraybuffer对象类型与十六进制字符串互转
最近,在做区块链浏览器,调用合约与链上进行数据通信的时候,需要将对象转化成十六进制字符串,看看下 javascript 关于 ArrayBuffer 类型的api文档,新的如下:arraybuffer类型转16进制字符串function buf2hex(buffer) { return Array.prototype.map.call(new Uint8Array(buffer), x => ('00' + x.toString(16)).slice(-2)).j.原创 2021-05-21 18:39:43 · 24209 阅读 · 0 评论 -
ES6 数组内对象去重
在实际的项目当中不可避免的会遇到数组里面元素重复情况,下面将介绍几种ES6数组去重的方法:1、使用Set去重const arr = ['张三','张三','三张三']let set = new Set(arr); // set 自带去重// Set { '张三', '三张三' }console.log(set);console.error(Array.from(set)); // [ '张三', '三张三' ]2、使用reduce去重let person = [ {id原创 2021-05-20 14:47:49 · 11350 阅读 · 0 评论 -
js Date函数setMonth后获取到的月不正确,如何去闭坑
近期有个项目的业务场景是要获取包含当前月份的在内的近三个月的数据,后台要求传入的数值是:["2021-03", "2021-02", "2021-01"]注释:鱼月份是从当前让往后推。然后,我写了一个函数获取近三个月的数据,代码如下: function date(num) { console.log(num); const dd = new Date(); dd.setMonth(dd.getMonth() - num); .原创 2021-03-31 17:23:16 · 1195 阅读 · 0 评论 -
Javascirp异步编程
在上一篇彻底弄清Javascirpt中的同步和异步一问当中,介绍了Javascirp代码执行的概念,同步和异步的原理。学习过Javascript语言的同学都知道,从Javascript诞生之日起,就是一门单线程、非阻塞的脚本语言。Javascript代码在执行的时候,都有一个主线程来处理所有任务,非阻塞就是靠异步编程,即事件循环(Event loop)。本文将向大家讲述,在js当中如何实现异步编程的。在本文之前先了解一下队列的概念队列 (queue)队列的特点是是"FIFO,即先进先出(原创 2020-12-27 23:25:19 · 379 阅读 · 0 评论 -
彻底弄清Javascirpt中的同步和异步
JS 主线程拥有一个执行栈(同步任务)和 一个任务队列(microtasks queue),主线程会依次执行代码,当遇到函数(同步)时,会先将函数入栈,函数运行结束后再将该函数出栈。 当遇到 task 任务(异步)时,这些 task 会返回一个值,让主线程不在此阻塞,使主线程继续执行下去,而真正的 task 任务将交给浏览器内核执行,浏览器内核执行结束后,会将该任务事先定义好的回调函数加入相应的任务队列(microtasks queue/ macrotasks queue)中。原创 2020-12-27 22:23:09 · 140 阅读 · 0 评论 -
3分钟弄清楚javascript的堆栈原理
首先了解一下Javascript的堆栈概念堆&栈两者都是存放临时数据的地方。栈(stack)栈的特点是"LIFO,即后进先出(Last in, first out)"。数据存储时只能从顶部逐个存入,取出时也需从顶部逐个取出。比如一个乒乓球的盒子:堆(heap)堆的特点是"无序"的key-value"键值对"存储方式。举个例子:书架存书我们想要在书架上找到想要的书,最直接的方式就是通过查找书名,书名就是我们的key。拿着这把key,就可以轻松检索到对应的书籍。"原创 2020-12-27 17:32:09 · 825 阅读 · 0 评论 -
javascript 去掉小数末尾多余的零
最近做项目需要对金额进行千分位处理的同时,保留多位小数。但是,小数部分不得为零。 let num1 = 995092130000000 / 100000000000; let res1 = num1.toFixed(12); document.write(res1 + '</br>'); // 9950.921300000000函数封装 /** * @name: handleCutZero * @description: 去掉double类型小.原创 2020-12-24 16:23:36 · 10133 阅读 · 4 评论 -
JavaScript中科学计数法转化为数值字符串形式
JavaScript 中经常会碰到数值计算问题,偶尔会在不经意间报一个不是bug的bug。今天来说说一个特殊的例子。我以0.0011BTC 价格买入 0.0002CZR 计算出了的金额是 0.00000022BTC,而 JavaScript 计算出来的金额是2.2e-7。值是对的,只是用了科学计数法,也是数值类型。但是问题来了,一般用户用户看不懂2.2e-7,那么就把它转换成0.00000022吧。然而问题了,我用尽办法,怎么样都无法将2.2e-7转换成直观的0.00000022。或许你会嘲...转载 2020-08-19 15:18:15 · 4644 阅读 · 0 评论 -
promise和async await的区别
之前面试的时候被面试官问到:你能说说Promise和async await的区别吗?我才发现自己写了这么久的Promise.then, all,async await,还真是没了解过这两者的原理和区别,于是赶紧学习了些资料,拿出小本本记录下来。 首先说说两者的概念 Promise Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大,简单地说,Promise好比容器,里面存放着一些未来才会执行完毕(异步)的事件的结果,而这些结果一旦生成是无法改变的转载 2020-07-12 00:06:01 · 7612 阅读 · 0 评论 -
JS中使用正则表达式g模式和非g模式的区别
g是global的缩写啊!就是匹配全部可匹配结果,如果你不带g,在正则过程中,字符串是从左至右匹配的,如果匹配成功就不再继续向右匹配了,如果你带g,它会重头到尾的把正确匹配的字符串挑选出来例如: 1 2 3 4 5 var str = 'aaaaaaaa' var reg1 = /a/ var reg2 = /a/g str.match(reg1) // 结果为:["a", index: 0, input:.原创 2020-05-15 17:26:12 · 1162 阅读 · 0 评论 -
js获取数组中的最大值最小值
1、遍历方法:var tmp=[1,12,8,5];var max=tmp[0];for(var i=1;iif(max}console.log(max); 2、使用apply方法:var a=[1,2,3,5];console.log(Math.max.apply(null,a));//最大值console.log(Math.min.apply(nul原创 2018-02-04 19:07:56 · 309 阅读 · 0 评论 -
js计算字符串当中重复出现字符的次数
计算出字符串中出现次数最多的字符是什么,出现了多少次?方法1:从第一个字符开始,应用正则表达式把与第一个字符相同的全部替换成空字符串,这样字符串length变小,比较两次的差值就是出现的次数,重复以上步骤,直到字符串为空。function foo(str){ var result=""; var maxLength=0; var getStr=""; wh...原创 2018-02-21 16:19:38 · 10845 阅读 · 1 评论 -
hasOwnProperty函数
hasOwnProperty是Object.prototype的一个方法,它可是个好东西,他能判断一个对象是否包含自定义属性而不是原型链上的属性,因为hasOwnProperty 是 JavaScript 中唯一一个处理属性但是不查找原型链的函数。 // 修改Object.prototypeObject.prototype.bar = 1; var foo = {goo: undefined}; ...原创 2018-02-21 16:26:04 · 2749 阅读 · 0 评论 -
JavaScript实现按照指定长度为数字前面补零输出的方法
本文实例讲述了JavaScript实现按照指定长度为数字前面补零输出的方法。分享给大家供大家参考。具体分析如下:例如我们希望输出的数字长度是固定的,假设为10,如果数字为123,则输出0000000123,不够位数就在之前补足0,这里提供了三种不同的方式实现JS代码给数字补0 的操作方法1function PrefixInteger(num, length) { return (num/Math...原创 2018-02-21 16:28:21 · 889 阅读 · 0 评论 -
js删除数组中某一项或几项的几种方法
1:js中的splice方法splice(index,len,[item])注释:该方法会改变原始数组。splice有3个参数,它也可以用来替换/删除/添加数组内某一个或者几个值index:数组开始下标len:替换/删除的长度item:替换的值,删除操作的话item为空如:arr=['a','b','c','d']删除----item不设置arr.splice(1,1)//['a','c','d'...原创 2018-02-21 16:29:16 · 3499 阅读 · 0 评论 -
如何用js得到当前页面的url信息方法(JS获取当前网址信息)
1,设置或获取对象指定的文件名或路径。 alert(window.location.pathname) 2,设置或获取整个 URL 为字符串。 alert(window.location.href); 3,设置或获取与 URL 关联的端口号码。 alert(window.location.port) 4,设置或获取 URL 的协议部分。 alert(window.location.protocol...原创 2018-02-22 14:08:01 · 657 阅读 · 0 评论 -
15个常用的javaScript正则表达式
收集整理了15个常用的javaScript正则表达式,其中包括用户名、密码强度、整数、数字、电子邮件地址(Email)、手机号码、身份证号、URL地址、IPv4地址、十六进制颜色、日期、QQ号码、微信号、车牌号、中文正则。表单验证处理必备,赶紧收藏吧!1用户名正则//用户名正则,4到16位(字母,数字,下划线,减号)varuPattern=/^[a-zA-Z0-9_-]{4,16}$/;//输出...原创 2018-02-22 14:09:51 · 205 阅读 · 0 评论 -
HTMl5的sessionStorage和localStorage
html5中的Web Storage包括了两种存储方式:sessionStorage和localStorage。sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储。而localStorage用于持久化的本地存储,除非主动删除...原创 2018-02-23 10:42:19 · 163 阅读 · 0 评论 -
原型链:__proto__、prototype属性和constructor属性
1、那么__proto__是什么?每个对象都会在其内部初始化一个属性,就是__proto__,当我们访问一个对象的属性时,如果这个对象内部不存在这个属性,那么他就会去__proto__里找这个属性,这个__proto__又会有自己的__proto__,于是就这样一直找下去,也就是我们平时所说的原型链的概念。2、prototype我们创建的每个函数都有一个prototype(原型)属...原创 2018-02-23 10:43:21 · 446 阅读 · 0 评论 -
javascript变量的提升
什么叫做的变量的提升?说到这里原本淡定的心情忽然间变得,有点小小的鸡冻了!首先,大家先看一个函数:var a = 123; function f(){ console.log(a); var a = 1; console.log(a); } f();您可能会想当然的认为console.log(a);第一次显示的是123(也就是全局变量a的值),而...原创 2018-02-23 13:15:33 · 166 阅读 · 0 评论 -
vue.js响应式原理解析与实现
从很久之前就已经接触过了angularjs了,当时就已经了解到,angularjs是通过脏检查来实现数据监测以及页面更新渲染。之后,再接触了vue.js,当时也一度很好奇vue.js是如何监测数据更新并且重新渲染页面。今天,就我们就来一步步解析vue.js响应式的原理,并且来实现一个简单的demo。 首先,先让我们来了解一些基础知识。 基础知识 Ob...转载 2018-10-22 14:47:25 · 232 阅读 · 0 评论 -
js把秒数转化为时分秒
在实际工作中,经常会遇见把秒数转化为时分秒的问题,如何处理呢?请看下面的函数: /** * 把秒数转化为天、时、分、秒 * 参数value是秒数 */ function formatSeconds(value) { var secondTime = parseInt(value) // 秒 ...原创 2019-01-16 13:54:26 · 5488 阅读 · 0 评论 -
js巧用apply方法实现数组最值以及合并
尽管js的apply方法在平常的使用中并不多见,但是在某些地方使用的还是很有帮助性的,这里就和大家说两个比较实用的例子:1.数组最大最小值求数组中的最大最小值,js有相应的方法:Math.min(),Math.max(),但是这两个方法有个不方便的地方就是其参数不能是数组,而是单个元素值,即(para1,para2,para3....)。所以使用就没有那么方便了,但是我们可以使用这个方法:原创 2018-01-31 16:53:41 · 246 阅读 · 0 评论