• javascript一些小技巧


    转载-----------------http://www.cnblogs.com/chenguangyin/archive/2012/12/10/2812122.html

    • 字符串转换为数值

    常规方法:

    var var1 = parseInt("2");
    var var2 = parseFloat("2");
    var var3 = Number("2");
    var var3 = new Number("2");

    简便方法:

    var var1 = +("2");

    另一简便方法:

    var str = "1.0";
    var num = str - 0;
    • 将其他类型转换为boolean类型

    在JavaScript中,所有值都能隐式的转化为Boolean类型:

    数据类型 转换为true的值 转换为false的值
    Boolean true false
    String 任何非空字符串 ""(空字符串)
    Number 任何非零数字值(包括无穷大) 0、NaN
    Object 任何对象 null
    Undefined (不适用) undefined

    举例:

    0 == false; // true
    1 == true; // true
    '' == false // true
    null == false // true

    我们也可以显示转化为Boolean类型:

    var a = Boolean("Hello"); //true

    更简单的方法:

    var a = "Hello";
    var b = !!a;
    • 创建多维数组

    一般方法:

    复制代码
    var arr = new Array(2);
    arr[0] = new Array(2);
    arr[1] = new Array(2);
    arr[0][0] = 1;
    arr[0][1] = 2;
    arr[1][0] = 3;
    arr[1][1] = 4;
    复制代码

    简便方法:

    var arr = {};
    arr[[0, 0]] = 1;
    arr[[0, 1]] = 2;
    arr[[1, 0]] = 3;
    arr[[1, 1]] = 4;

    其他方法1(推荐):

    var arr = [];
    arr[0] = [1, 2];
    arr[1] = [3, 4];

     其他方法2(楼下补充,推荐):

    var arr=[
            [1, 2],
            [3, 4]
    ];    
    • 阻止别人在iframe中加载你的页面

    防止把你的网页通过iframe嵌入它自己的网页:

    if(top !== window) {
       top.location.href = window.location.href;
    }

    这段代码应该放在每个页面的head中。

    • 将arguments参数对象转换为数组

    在JavaScript中,函数中的预定义变量arguments并非一个真正的数组,而是一个类似数组的对象。 它具有length属性,但是没有数组对象的slice, push, sort等函数,而这些有时我们经常在函数里用到,所以我们需要把参数转换为真正的数组:

    function func() {
        var arr = Array.prototype.slice.call(arguments, 0);
        return arr;
    }
    • 遍历得到的正则结果

    常规方法:

    复制代码
    var str = "132ada5d6g3j";
    var match = str.match(/\d/g, str);
    var arr = [];
    var j;
    for(var i = 0, j = match.length; i < j; i++) {
        arr.push(match[i]);
    }
    console.log(arr);
    复制代码

    快捷方法:

    var str = "132ada5d6g3j"; 
    var arr = [];
    str.replace(/\d/g, function() {
    arr.push(arguments[0]);
    });
    console.log(arr);

    另一快捷方法:

    var str = "132ada5d6g3j"; 
    var arr = str.replace(/\D/g,' ').split(' ');
    console.log(arr);
    • 获取数字数组中的最大值

    常规方法:

    复制代码
    var arr = [1, 5, 4, 12355, 43, 123, 123, 3, 4454, 43];
    var max = arr[0];
    for(var i in arr) {
        if(arr[i] > max) {
            max = arr[i];
        }
    }
    /*
     循环也可能是:
    for(var i = 0 ,j = arr.length; i < j; i++) {
        if(arr[i] > max) {
            max = arr[i];
        }
    }
    
    */
    console.log(max);
    复制代码

    简便方法:

    var arr = [1, 5, 4, 12355, 43, 123, 123, 3, 4454, 43];
    var max = Math.max.apply(null, arr);
    console.log(max);
    • 数字取整

    常规方法:

    var num = 5.63;
    console.log(Math.floor(num));

    其他方法1(只可用于不小于0的数):

    var num = 5.63;
    console.log(num>>>0);

    其他方法2(正负数都可用,推荐):

    var num = 5.63;
    console.log(~~num);
    • 修正类似于0.1+0.2 != 0.3的错误

    在JavaScript中,数字是基于IEEE754的数值,所以会出现浮点运算误差的情况,这是使用IEEE754的通病,不是语言本身的问题:

    var num = 0.1 + 0.2; // 0.30000000000000004
    console.log(num == 0.3); // false

    修正方法:

    var num = 0.1 + 0.2; // 0.30000000000000004
    console.log(num);
    /*你可以通过toFixed方法指定四舍五入的小数位数:*/
    console.log(num.toFixed()); // "0"
    console.log(num.toFixed(1)); // "0.3"
    • 整数前补0

    普通方法:

    复制代码
     /*注意,这里的n表示数字num补0后的位数*/
    function addZero(num, n) {
      var len = num.toString().length;
      while(len < n){
        num = "0" + num;
        len++;
      }
      return num;
    }
    console.log(addZero(5,8)); //00000005
    复制代码

    简单方法:

    复制代码
    function addZero(num, n) {
       y='00000000000000000000000000000'+num;
     /*
    这里0的数目可调整
    */
       return y.substr(y.length-n);
    }
    console.log(addZero(5,8)); //00000005
    复制代码

    -------------------------------------------------------------------

    字符串连接的性能问题应该很经典了,就不详细介绍了。

  • 相关阅读:
    搭建cdh单机版版本的hive所遇到的问题总汇
    CentOS下Java的安装与环境配置
    重新认识Maven
    spring boot 搭建web项目常见五种返回形式
    一段递归代码引发的对于传参以及关于基本类型的一点了解
    爬虫
    .NET简谈接口
    C# Dictionary用法总结
    select @@identity的用法 转
    DataSet用法详细 转
  • 原文地址:https://www.cnblogs.com/akingyao/p/2844392.html
Copyright © 2020-2023  润新知