随笔分类 - javascript
摘要:题目一 红灯3秒亮一次,绿灯1秒亮一次,黄灯2秒亮一次;如何让三个灯不断交替重复亮灯?(用Promise实现)三个亮灯函数已经存在: function red() { console.log('red'); } function green() { console.log('green'); } f
阅读全文
摘要:很多编程语言里都有sleep(),delay()等方法,它能让我们的程序不那么着急的去执行下一步操作,而是延迟、等待一段时间。软件开发中经常会遇到需要这样的函数,比如等待几分钟去检查某一事件是否发生。JavaScript里有setTimeout()方法来实现设定一段时间后执行某个任务,但写法很丑陋,
阅读全文
摘要:function findLongestCommonStr(s1, s2) { var commonStr = '', L1 = s1.length, L2 = s2.length; // 比较s1,s2的长度,看谁长谁短 var shortStr = L1>L2 ? s2 : s1; var lo
阅读全文
摘要:方法一:借助构造函数实现继承 这种方法的缺点:原型链上的东西并没有被继承。 方法二:借助原型链实现继承 这种方法的缺点:改变了一个实例对象,另一个实例对象也跟着改变,因为s1.__proto__ s2.__proto__。 方法三:组合方式 这种方法的缺点:父类的构造方法执行了2次,分别在Paren
阅读全文
摘要: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
阅读全文
摘要:let arr = '1234567890' function trans(arr){ let b=arr.split('').reverse() return b.reduce((pre, cur, idx)=>{ return ((idx%3)?cur:cur+',') + pre }) } c
阅读全文
摘要:const obj = { name: 'zj', age: 18 } const str = `我的名字叫${ obj.name },今年${obj.age}岁` function replace(str){ return str.replace(/\$\{([^}]+)\}/, function
阅读全文
摘要:Promise.all 允许定义的 Promise 按照数组传入,并依次执行 Promise 并将结果保存在一个列表中,返回一个Promise. let p1 = new Promise((resolve, reject)=>{ resolve("只要有爱,"); }); let p2 = new
阅读全文
摘要:调用 Array.isArray() 方法 判断是否为数组的实例 判断对象的构造函数是否是 Array 判断原型对象与数组的原型对象是否一致 Object.prototype.toString function judgeArray(arr, pattern){ switch(pattern){ c
阅读全文
摘要: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
阅读全文
摘要:一、语法 arr.reduce(function(prev,cur,index,arr){ ... }, init); 其中, arr 表示原数组; prev 表示上一次调用回调时的返回值,或者初始值 init; cur 表示当前正在处理的数组元素; index 表示当前正在处理的数组元素的索引,若
阅读全文
摘要:call的实现 Function.prototype.Call=function(...args){ var context=args[0]||window; var argArr=args.slice(1) context.fn=this; //相当于给context加了一个fn属性,属性值为当前
阅读全文
摘要: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
阅读全文
摘要:1.在JS里Array是一个类 slice是此类里的一个方法 ,那么使用此方法应该Array.prototype.slice这么去用 function test(a,b,c,d) { var arg = Array.prototype.slice.call(arguments,1); alert(a
阅读全文
摘要:js 里面的 Number 用64位浮点数表示,数值范围为 -2^53 2^53 (包含边界)。如果数值相加后的结果超过这个范围,则会导致精度丢失。 大数相加原理是利用数组可以自动扩容来保存计算结果,并用字符串的形式输入与输出。 function add (str1, str2) { str1=st
阅读全文
摘要: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,
阅读全文
摘要: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
阅读全文
摘要: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
阅读全文
摘要: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-
阅读全文
摘要: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
阅读全文
浙公网安备 33010602011771号