1、如何优雅的取随机字符窜
Math.random().toString(16).substring(2) //13位
Math.random().toString(36).substring(2) //11位
2、如何优雅的取整
var a = ~~2.33; //2
var b = 2.33|0; //2
var c = 2.33>>0; //2
3、如何用正则优雅的实现金钱格式化:1234567890 --> 1,234,567,890
正则写法:reg = /\B(?=(\d{3})+(?!\d))/g
4、如何最佳让两个整数交换数值
var a = 1;
var b = 2;
a^=b;
b^=a;
a^=b;
//a = 2, b = 1
5、最短的代码实现数组去重(ES6版本才有的数据结构Set)
newSet([1,"1",2,1,1,3]);
6、取数组中的最大值/最小值
var s = [1,2,3,4,5,6,7,8];
var max = Math.max.apply(Math,s);
var max = Math.min.apply(Math,s);
7、arguments对象
在函数代码中,使用特殊对象 arguments,开发者无需明确指出参数名,就能访问它们。例如,在函数 sayHi() 中,第一个参数是 message。用 arguments[0] 也可以访问这个值,即第一个参数的值(第一个参数位于位置 0,第二个参数位于位置 1,依此类推)。
因此,无需明确命名参数,就可以重写函数:
function name(){
return arguments[0];//获取参数的个数用arguments.length
}
console.log(name("刘德华")); //输出"刘德华"
8、Function构造函数接受的参数中,第一个是要传入的参数名,第二个是函数内的代码
这种方式可以根据传入字符串内容来创建一个函数
var add = new Function("a","a = a+10;return a;");
console.log(add(123)); //输出:133