github-cxtan

Results 11 comments of github-cxtan

const shuffle = arr => arr.sort(() => Math.random() - 0.5);

var array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; console.log(array.sort((a, b) => { return Math.floor(Math.random() * 10) - 5; }));

var str = '锵咚锵'; function isPalindrome(data) { if (data.length === 1) return true; let str1 = data.replace(/[^a-zA-Z0-9]/g, '').toLowerCase(); let str2 = str1.split('').reverse().join(''); return str1 === str2 } console.log(isPalindrome(str));

console.log(!0 ? 1 : 0); console.log(~0 + 2);

console.log(!0 ? 1 : 0); console.log(~0 + 2);

function DeleteTable(data){ return data.replace(/(\t+)|(\n+)/g, ''); }

arguments对象不是一个 Array 。它类似于Array,但除了length属性和索引元素之外没有任何Array属性 特性: 1.arguments对象和Function是分不开的。 2.因为arguments这个对象不能显式创建。 3.arguments对象只有函数开始时才可用。

改变函数执行时的上下文,再具体一点就是改变函数运行时的this指向。 bind bind方法是事先把fn的this改变为我们要想要的结果,并且把对应的参数值准备好,以后要用到了,直接的执行即可,也就是说bind同样可以改变this的指向,但和apply、call不同就是不会马上的执行 注意:bind这个方法在IE6~8下不兼容。 区别 上面看起来三个函数的作用差不多,干的事几乎是一样的,那为什么要存在3个家伙呢,留一个不就可以。所以其实他们干的事从本质上讲都是一样的动态的改变this上下文,但是多少还是有一些差别的.. call、apply与bind的差别 call和apply改变了函数的this上下文后便执行该函数,而bind则是返回改变了上下文后的一个函数。 call、apply的区别 他们俩之间的差别在于参数的区别,call和apply的第一个参数都是要改变上下文的对象,而call从第二个参数开始以参数列表的形式展现,apply则是把除了改变上下文对象的参数放在一个数组里面作为它的第二个参数。

创建一个新对象 将构造函数中的this指向该对象 执行构造函数代码(给新对象添加属性和方法) 返回者着新对象 据此,我们初步实现模拟new的objectFactory方法: function objectFactory(){ var obj=new Object();//创建一个新对象 var Constructor=[].shift.call(arguments);//取得该方法的第一个参数(并删除第一个参数),该参数是构造函数 obj.__proto__=Constructor.prototype;//将新对象的内部属性__proto__指向构造函数的原型,这样新对象就可以访问原型中的属性和方法 Constructor.apply(obj,arguments);//使用apply,将构造函数中的this指向新对象,这样新对象就可以访问构造函数中的属性和方法 return obj;//返回一个对象 }

console.log(Math.max(...array)); console.log(Math.min(...array));