随笔分类 - javascript
js基础
摘要:- 今天遇到一个需要浮点数相加减的需求 js中浮点数运算结果并不准,例如 0.1 + 0.2 !== 0.3 0.55 * 100 !== 55 8.2 * 100 !== 820 在计算过程中会存在很多误差 以下是浮点数的 加法和减法: export const float = function
阅读全文
摘要:- 主要用到while循环、还有让一个函数执行多次,先生成一个指定长度的数组,然后循环执行 例如,在0-9之间取随机整数,不包含1 、2 、3 、 4 、 5 、6 、7 、8 let arr = [1,2,3,4,5,6,7,8]; function genarateRandom(){ let r
阅读全文
摘要:- 最近需要把时间轴修改成自己想要的样子,需要在时间轴的当前时间条上设置一个气泡,但是没有这个api,于是想到一个办法,通过监听 时间条dom元素,获取时间条的位置,然后创建一个元素当做气泡,这个气泡的位置会随着时间条的位置变化而变化; 1、需要用到MutationObserver 来监听时间条do
阅读全文
摘要:- 参考博客:http://www.ruanyifeng.com/blog/2018/07/web-worker.html work是用来开启子线程的,我们可以把一些计算量大的程序放到子线程去执行,去提升性能。 下面是一个简单的demo(在vue中使用的) 因为worker脚本必须来自网络,而且和主
阅读全文
摘要:- // 将十进制转换为二进制 function to2(number){ return Number(number.toString(2)); } console.log(to2(3));// 11 /** * 将二进制小数部分转换为十进制数 * @param binaryFloatPartArr
阅读全文
摘要:- 参考博客:https://www.cnblogs.com/jixiaohua/p/10714662.html ArrayBuffer对象、TypedArray视图和DataView视图是 JavaScript 操作二进制数据的一个接口。它们都是以数组的语法处理二进制数据,所以统称为二进制数组。
阅读全文
摘要:- (function noDebuger() { function testDebuger() { var wWADWeTEd1 = new window["Date"](); debugger; if (new window["Date"]() - wWADWeTEd1 > 10) { wind
阅读全文
摘要:- 每个对象都有__proto__属性(访问器属性),这个属性可以访问到对象的原型对象(prototype); 拿构造函数的实例对象来举例,看看原型链的指向 function Person(name,age){ this.name = name; this.age = age; } let pers
阅读全文
摘要:- JavaScript 的运行时环境采用了事件循环模型。事件循环将任务分为宏任务和微任务,按以下顺序执行: 执行一个宏任务(例如,script 标签、setTimeout、setInterval 等)。 执行所有的微任务(例如,Promise 的 .then 回调、MutationObserver
阅读全文
摘要:。 现代浏览器支持已经支持了promise,下面我用Cpromise类来重新写一个promise,探索一下promise实现的原理: 直接上代码: /* Cpromise:构造函数 excutor:内部同步执行函数 (resolve,reject) => {} */ function Cpromis
阅读全文
摘要:节流: 高频事件不断触发,每隔一定时间会执行一次,会稀释高频事件; 实现原理:在闭包内设置一个标记,初始值为true,若标记为false,则退出函数,不执行,若标记值为true,马上将标记变成false;并且执行一个定时器,在定时器内执行回调函数,并且将标记设置为true; 具体代码: functi
阅读全文
摘要:。 。 function fomatFloat(num,n){ var f = parseFloat(num); if(isNaN(f)){ return false; } f = Math.round(f*Math.pow(10, n))/Math.pow(10, n); // n 幂 var s
阅读全文
摘要:。 function kilocharacter(number){ if(number "" || number ==null){ return ''; } if(!isNaN(number)){ var baseLen = 3; var str = String(number) if(str.in
阅读全文
摘要:。 有时候我们需要对一些请求做出拦截,不让继续请求。 情景:当同样的接口连续请求时,我们可以把前面的请求在还未响应时,切断。 今天发现有人将请求接口写在了循环里,并且实现了一个功能,很是窝火。因为我认为把接口放在循环里是不对的,说不出哪不对,它就是不对。 近期做了axios请求切断。导致了这个功能失
阅读全文
摘要:。 let str = "dasadasdadasdasdsadasdasdasda"; function getSessionStorageSize(key) { const item = sessionStorage.getItem(key); let size = JSON.stringify
阅读全文
摘要:例子: let arr = [1,2,3,4] arr.some(item => { console.log(item); if(item == 3){ return true; } }) let arr = [1,2,3,4] arr.some(item => { if(item == 3){ r
阅读全文
摘要:onbeforepaste事件用法: onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" onbeforepaste 意思是在用户执行粘贴动作之前。clipb
阅读全文
摘要:参考链接:https://www.cnblogs.com/cckui/p/10785037.html 。 function formatEveryDay(start, end) { let dateList = []; var startTime = new Date(start) var endT
阅读全文