js的几种常用技巧

函数
使用递归实现求阶乘

function factorial(n){
  if(n==1){
    return 1;
  }else{
    return n*arguments.callee(n-1);
  }
}
alert(factorial(3)); // 6

作用域
模拟块级作用域

function fn(){
    (function(){
        for(var i=0;i<3;i++){
            alert(i); //0,1,2
        }
    })(); // 匿名函数执行完变量i就从内存中释放了
    // alert(i);  // 这里是访问不到i的
}
fn();

数组
生成一个索引与值一一对应的数组(0-2)
循环

function fn(){
    var arr=[];
    for(var i=0;i<3;i++){
        arr[i]=i;
    }
    return arr;
}
alert(fn()); // 0,1,2

循环+匿名函数

function fn(){
    var arr=[];
    for(var i=0;i<3;i++){
        arr[i]=(function(n){
            return n;
        })(i);
    }
    return arr;
}
alert(fn()); // 0,1,2

数组去重

var arr=[1,2,2,5,8,10,5,6];
for(var i=0;i

排序

var arr=[1,21,12,5,8,10];
arr.sort(function(a,b){
    return a-b; // 从小到大排序,若是b-a,则从大到小排序
});
alert(arr); // 1,5,8,10,12,21

Math
获取一个指定范围(闭区间)的随机整数

function randomInt(min,max){        
  return Math.floor(Math.random()*(max-min+1))+min;
}        
alert(randomInt(2,5)); // 随机整数的范围:[2,5]

你可能感兴趣的:(js的几种常用技巧)