zoukankan      html  css  js  c++  java
  • 超实用的JavaScript技巧及最佳实践给

    1、数组创建一个随机项

    var items = [12,548,'a',2,5478,'foo',8852,,'Doe',2145,119];
    var randomItem = items[Math.floor(Math.random()*items.length)];

    2、在特定范围里获得一个随机数

    var x = Math.floor(Math.random()*(max - min + 1)) + min;

    3、在数字0和最大数之间生成一组随机数

    var numbersArray = [], max = 100;
    for( var i=1; numbersArray.push(i++)<max;);

    4、生成一组随机的字母数字字符

    function generateRandomAiphaNum(len){
        var rdmstring = "";
        for( ; rdmString.length < len; rdmString += Math.random().toString(36).substr(2));
        return rdmString.substr(0,len);   
    }

    5、打乱数字数组

    var numbers = [5,458,120,-215,228,400,1222205,-85411];
    numbers = numbers.sort(function(){
        return Math.random() - 0.5
    });

    6、字符串trim函数

    String.prototype.trim = function(){
     return this.replace(/^s+|s+$/g,"");   
    };

    7、数组追加

    var array1 = [12,"foo",{name "Joe"},-2458];
    var array2 = ["Doe",555,100];
    Array.prototype.push.apply(array1,array2);

    8、将参数对象转换为数组

    var argArray = Array.prototype.slice.call(arguments);

    9、验证一个给定参数是否为数字

    function isNumber(n){
       return !isNaN(parseFloat(n)) && isFinite(n); 
    };

    10、验证一个给定的参数为数组

    function isArray(obj){
       return Object.prototype.toString.call(obj) ==='[object Array]'; 
    };

        注意:如果toString()方法被重写了,你将不会得到预期结果。

        或者你可以这样写:

    var myFrame = document.createElement('iframe');
    document.body.appendChile(myFrame);
    var myArray = window.frames[window.frames.length-1].Array;
    var arr = new myArray(a,b,10);
    arr instanceof Array;

    11、从数字数组中获得最大值和最小值

    var numbers = [5,458,120,-215,228,400,122205,-85411];
    var maxInNumbers = Math.max.apply(Math,numbers);
    var minInNumbers = Math.min.apply(Math,numbers);

    12、清空数组

    var myArray = [12,222,1000];
    myArray.length = 0;

    13、不要用delete从数组中删除项目

         开发者可以使用split来代替使用delete来删除数组项。与其删除数组中未定义项目,还不如使用delete来替代。

    var items = [12,548,'a',2,5478,'foo',8852, ,'Doe',2154,119];
    item.length;//return 11
    delete items[3];
    items.length;//return 11
        /*[12,548,'a',undefined,5478,'foo',8852, ,'Doe',2154,119]*/

        也可以……

    var items = [12,548,'a',2,5478,'foo',8852, ,'Doe',2154,119];
    item.length;//return 11
    items.splice(3,1);
    items.length;//return 10
        /*[12,548,'a',5478,'foo',8852, ,'Doe',2154,119]*/

        delete方法应该删除一个对象属性

    14、使用length属性缩短数组

       如上文提到的清空数组,开发者还可以使用length属性缩短数组。

    var myArray = [12,222,1000,124,98,10];
    myArray.length = 4;//[12,222,1000,124];

        如果你所定义的数组长度值过高,那么数组的长度将会改变,并且会填充一些未定义的值到数组里,数组的length属性不是只读的。

    myArray.length = 10;
    myArray[myArray.length - 1];//undefined
  • 相关阅读:
    MYSQL router 自动均衡负载
    mysql router 自动failover测试
    Oracle数据库安装时 environment variable path 大于 1023
    windows删除多余启动引导项
    开机显示 invalid partition table
    有关软件的商业模式与软件代码的加密
    .Net 开源控件 NPlot使用小结
    41.关于Intellij IDEA菜单项中Compile、Make和Build的区别
    Maven:mirror和repository 区别
    28. Spring Boot配置方式
  • 原文地址:https://www.cnblogs.com/lhl98/p/3501093.html
Copyright © 2011-2022 走看看