随笔分类 -  javascript

摘要:题目一 红灯3秒亮一次,绿灯1秒亮一次,黄灯2秒亮一次;如何让三个灯不断交替重复亮灯?(用Promise实现)三个亮灯函数已经存在: function red() { console.log('red'); } function green() { console.log('green'); } f 阅读全文
posted @ 2020-08-17 15:04 apple78 阅读(205) 评论(0) 推荐(0)
摘要:很多编程语言里都有sleep(),delay()等方法,它能让我们的程序不那么着急的去执行下一步操作,而是延迟、等待一段时间。软件开发中经常会遇到需要这样的函数,比如等待几分钟去检查某一事件是否发生。JavaScript里有setTimeout()方法来实现设定一段时间后执行某个任务,但写法很丑陋, 阅读全文
posted @ 2020-08-09 16:11 apple78 阅读(3639) 评论(0) 推荐(0)
摘要:function findLongestCommonStr(s1, s2) { var commonStr = '', L1 = s1.length, L2 = s2.length; // 比较s1,s2的长度,看谁长谁短 var shortStr = L1>L2 ? s2 : s1; var lo 阅读全文
posted @ 2020-08-04 15:52 apple78 阅读(997) 评论(0) 推荐(0)
摘要:方法一:借助构造函数实现继承 这种方法的缺点:原型链上的东西并没有被继承。 方法二:借助原型链实现继承 这种方法的缺点:改变了一个实例对象,另一个实例对象也跟着改变,因为s1.__proto__ s2.__proto__。 方法三:组合方式 这种方法的缺点:父类的构造方法执行了2次,分别在Paren 阅读全文
posted @ 2020-07-13 16:33 apple78 阅读(123) 评论(0) 推荐(0)
摘要:1.ES6 set方法 let arr = [12,43,23,43,68,12]; let item = [...new Set(arr)]; console.log(item);//[12, 43, 23, 68] let arr = [12,43,23,43,68,12]; let item 阅读全文
posted @ 2020-06-01 21:15 apple78 阅读(119) 评论(0) 推荐(0)
摘要:let arr = '1234567890' function trans(arr){ let b=arr.split('').reverse() return b.reduce((pre, cur, idx)=>{ return ((idx%3)?cur:cur+',') + pre }) } c 阅读全文
posted @ 2020-05-28 12:32 apple78 阅读(163) 评论(0) 推荐(0)
摘要:const obj = { name: 'zj', age: 18 } const str = `我的名字叫${ obj.name },今年${obj.age}岁` function replace(str){ return str.replace(/\$\{([^}]+)\}/, function 阅读全文
posted @ 2020-05-28 12:16 apple78 阅读(207) 评论(0) 推荐(0)
摘要:Promise.all 允许定义的 Promise 按照数组传入,并依次执行 Promise 并将结果保存在一个列表中,返回一个Promise. let p1 = new Promise((resolve, reject)=>{ resolve("只要有爱,"); }); let p2 = new 阅读全文
posted @ 2020-05-28 10:48 apple78 阅读(177) 评论(0) 推荐(0)
摘要:调用 Array.isArray() 方法 判断是否为数组的实例 判断对象的构造函数是否是 Array 判断原型对象与数组的原型对象是否一致 Object.prototype.toString function judgeArray(arr, pattern){ switch(pattern){ c 阅读全文
posted @ 2020-05-28 09:21 apple78 阅读(201) 评论(0) 推荐(0)
摘要:add(1, 2, 3, ...)是对传入参数的求和方法 function add (...args) { return args.reduce((prev, val) => { return prev + val }) } let rs = add(1, 2, 3, 4, 5, 6) consol 阅读全文
posted @ 2020-05-27 12:29 apple78 阅读(803) 评论(0) 推荐(0)
摘要:一、语法 arr.reduce(function(prev,cur,index,arr){ ... }, init); 其中, arr 表示原数组; prev 表示上一次调用回调时的返回值,或者初始值 init; cur 表示当前正在处理的数组元素; index 表示当前正在处理的数组元素的索引,若 阅读全文
posted @ 2020-05-26 17:58 apple78 阅读(220) 评论(0) 推荐(0)
摘要:call的实现 Function.prototype.Call=function(...args){ var context=args[0]||window; var argArr=args.slice(1) context.fn=this; //相当于给context加了一个fn属性,属性值为当前 阅读全文
posted @ 2020-05-25 18:08 apple78 阅读(403) 评论(0) 推荐(0)
摘要:let res=flat([1,2,[3,[4,5,[6,7,8,[10]]]]]) function flat(arr){ let isdeep=arr.some(item=>item instanceof Array); if(!isdeep){ return arr; } let res=Ar 阅读全文
posted @ 2020-05-25 16:43 apple78 阅读(110) 评论(0) 推荐(0)
摘要:1.在JS里Array是一个类 slice是此类里的一个方法 ,那么使用此方法应该Array.prototype.slice这么去用 function test(a,b,c,d) { var arg = Array.prototype.slice.call(arguments,1); alert(a 阅读全文
posted @ 2020-05-25 15:54 apple78 阅读(107) 评论(0) 推荐(0)
摘要:js 里面的 Number 用64位浮点数表示,数值范围为 -2^53 2^53 (包含边界)。如果数值相加后的结果超过这个范围,则会导致精度丢失。 大数相加原理是利用数组可以自动扩容来保存计算结果,并用字符串的形式输入与输出。 function add (str1, str2) { str1=st 阅读全文
posted @ 2020-05-25 12:40 apple78 阅读(379) 评论(0) 推荐(0)
摘要:let arr=[5,7,5,8,1,2,9,10,51]; let len=arr.length; function a(arr){ if(arr==null||arr.length<2) {return null;} for(let i=0;i<len;i++){ heapinsert(arr, 阅读全文
posted @ 2020-05-25 12:00 apple78 阅读(127) 评论(0) 推荐(0)
摘要:let arr=[5,7,5,8,1,2,9,10,51,12,18,9,10,2,5]; let len=arr.length; function a(arr){ if(arr==null||arr.length<2) {return null;} let i,j; for(i=0;i<len;i 阅读全文
posted @ 2020-05-25 11:10 apple78 阅读(100) 评论(0) 推荐(0)
摘要:let arr=[5,7,5,8,1,2,9,10,51,12,18,9,10,2,5]; let len=arr.length-1; function a(arr){ if(arr==null||arr.length<2) {return null;} let i; for(let end=len 阅读全文
posted @ 2020-05-25 11:02 apple78 阅读(95) 评论(0) 推荐(0)
摘要:let arr=[5,7,5,8,1,2,9,10,51,12,18,9,10,2,5]; function a(arr){ if(arr==null||arr.length<2) {return null;} let i,j; for(i=1;i<arr.length;i++){ for(j=i- 阅读全文
posted @ 2020-05-25 10:55 apple78 阅读(94) 评论(0) 推荐(0)
摘要:let arr1=[5,7,5,8,1,2,9,10,51,12,18,9,10,2,5]; function sor1(arr,l,r){ if(l==r){ return; } let mid= Math.floor((l+r)/2); sor1(arr,l,mid); sor1(arr,mid 阅读全文
posted @ 2020-05-25 10:22 apple78 阅读(100) 评论(0) 推荐(0)