JS开发中的一些小技巧和方法

来源:互联网 发布:淘宝贷款突然不能用了 编辑:程序博客网 时间:2024/05/14 21:03

JS开发中的一些小技巧和方法

  • 生成指定范围内的随机数
    当我们需要获取指定范围(min,max)内的整数的时候,下面的代码非常适合;这段代码用的还挺多的。
function setRadomNum(min,max){    return  Math.floor(Math.random() * (max - min + 1)) + min;}
  • json转url参数
    当我们进行http请求时,可能需要把json转化为url参数,这时下面这段代码就派上用场了。
function json2url(json) {    var arr=[];    for(var name in json){        arr.push(name+'='+json[name]);    }    return arr.join('&');}
  • 验证是否为数组
function isArray(obj){    return Array.isArray(obj) || Object.prototype.toString.call(obj) === '[object Array]';}

先检验本地是否有Array.isArray函数,没有就执行后面的方法检测。

  • 清空数组
方式一 通过将长度设置为0var arr=[1,2,3,4,5];arr.length=0;方式二 通过splice方法 var arr=[1,2,3,4,5];arr.splice(0,arr.length);//方式三var arr=[1,2,3,4,5];arr=[];

方式三将一个新的数组的引用赋值给变量,其他引用并不受影响。 这意味着以前数组的内容被引用的话将依旧存在于内存中,这将导致内存泄漏。最高效的方法是第一种,所以推荐使用第一种方法清空数组。

  • 保留指定小数位
    这个需求在项目中也是很常见的,可以toFixed()方法
var num =3.1415926;num = num.toFixed(4); //toFixed()方法可把 Number 四舍五入为指定小数位数的数字,括号里面取值0~20(包括0和20)console.log(num); //3.1416
  • 打乱数组的顺序
方式一arr.sort(function(){return Math.random()-0.5});方式二function shuffle(arr) {    var i,         j,        temp;    for (i = arr.length - 1; i > 0; i--) {        j = Math.floor(Math.random() * (i + 1));        temp = arr[i];        arr[i] = arr[j];        arr[j] = temp;    }    return arr;    };

方式一使用了数组的内置排序方法:sort,而方式二是借助了一个中间量,随机数组里的两个值,让它们交换位置。

  • 使用 === 而不是 ==
    == (或者 !=) 操作在需要的情况下自动进行了类型转换。=== (或 !==)操作不会执行任何转换。===在比较值和类型时,可以说比==更快。
[10] ==  10      // 为 true[10] === 10      // 为 false'10' ==  10      // 为 true'10' === 10      // 为 false []  ==  0       // 为 true []  === 0       // 为 false ''  ==  false   // 为 truetrue == "a"false ''  === false   // 为 false
  • 妙用“&&”和“||”
    ||和&&运算符妙用,可用于精简代码,降低程序的可读性。
    用于赋值
    &&:从左往右依次判断,当当前值为true则继续,为false则返回此值(是返回未转换为布尔值时的原值哦)
    || : 从左往右依次判断,当当前值为false则继续,为true则返回此值(是返回未转换为布尔值时的原值哦)
var attr = true && 4 && "aaa"; //aaa;var attr = true && 0 && "aaa"; //0var attr = 100 || 12; //100var attr = "e" || "hahaha" //'e'var attr = "" || "hahaha" //'hahaha'用于条件执行语句// 普通的if语句if(test){  isTrue();}// 上面的语句可以使用 '&&' 写为:( test && isTrue() );test = false;if(!test){  isFalse();}// 上面的语句可以使用 '||' 写为:( test || isFalse());用于多次判 断后的赋值var add_level = 0; if(add_step == 5){     add_level = 1; } else if(add_step == 10){     add_level = 2; } else if(add_step == 12){     add_level = 3; } else if(add_step == 15){     add_level = 4; } else {     add_level = 0; }//可以写成var add_level = (add_step==5 && 1) || (add_step==10 && 2) || (add_step==12 && 3) || (add_step==15 && 4) || 0;
  • 获取数组中的最大值或最小值
function maxAndMin(arr){    return {       max:Math.max.apply(null,arr.join(',').split(',')),       min:Math.min.apply(null,arr.join(',').split(','))    }}

该方法适合一维或者多维数组。

  • 随机获取数组里的元素
function getRadomFromArr(arr){    return arr[Math.floor(Math.random()*arr.length)];}
  • 从数组里查找指定的值
    查到了返回true,没查到返回false。
function findInArr(arr, value){    for (var i=0; i<arr.length; i++){        if (arr[i] == value){            return true;        }    }       return false;}
  • 生成指定长度的随机数字字母字符串
function getRandomStr(len) {    var str = "";    for( ; str.length < len; str  += Math.random().toString(36).substr(2));    return  str.substr(0, len);}


  • 去除字符串的空格

虽然在ECMAScript5中已经实现了trim方法,它对低版本浏览器并不支持,所以有时候我们需要自己实现。
去除首尾空格function trim(str){    return str.replace(/(^\s*)|(\s*$)/g, "");}trim('  hello world    '); //"hello world"去除所有空格function trimAll(str){    return str.replace(/\s+/g,"");}trimAll('   he ll o  wo  r ld    '); //"helloworld"

——原文链接: JS开发中的一些小技巧和方法

原创粉丝点击