JS开发中的一些小技巧和方法
2017-08-31 16:28
495 查看
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函数,没有就执行后面的方法检测。
清空数组
方式一 通过将长度设置为0 var 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 // 为 true 但 true == "a" 为false '' === false // 为 false
妙用“&&”和“||”
||和&&运算符妙用,可用于精简代码,降低程序的可读性。
用于赋值
&&:从左往右依次判断,当当前值为true则继续,为false则返回此值(是返回未转换为布尔值时的原值哦)
|| : 从左往右依次判断,当当前值为false则继续,为true则返回此值(是返回未转换为布尔值时的原值哦)
var attr = true && 4 && "aaa"; //aaa; var attr = true && 0 && "aaa"; //0 var attr = 100 || 12; //100 var 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开发中的一些小技巧和方法
相关文章推荐
- C#中??和?分别是什么意思? 在ASP.NET开发中一些单词的标准缩写 C#SESSION丢失问题的解决办法 在C#中INTERFACE与ABSTRACT CLASS的区别 SQL命令语句小技巧 JQUERY判断CHECKBOX是否选中三种方法 JS中!=、==、!==、===的用法和区别 在对象比较中,对象相等和对象一致分别指的是什么?
- Cocos2d-JS开发中的一些小技巧
- Cocos2d-JS开发中的一些小技巧
- Cocos2d-JS开发中的一些小技巧
- 自己整理的一些开发时候常用的js方法封装
- Cocos2d-JS开发中的一些小技巧(持续更新)
- Cocos2d-JS开发中的一些小技巧
- Cocos2d-JS开发中的一些小技巧
- Cocos2d-JS开发中的一些小技巧(持续更新)
- Cocos2d-JS开发中的一些小技巧
- iOS 代码开发的小技巧(在别人博客的继承上添加一些方法)
- 不用AJAX实现前台JS调用后台C#方法(小技巧)
- .NET开发中的一些小技巧
- DataGrid开发中应注意的一些小技巧
- 不用AJAX实现前台JS调用后台C#方法(小技巧)
- .NET开发中的一些小技巧
- Asp.net &C#开发中的一些注意事项及小技巧
- .NET开发中的一些小技巧
- web开发中常用到一些JavaScript方法
- DELPHI的一些开发技巧和方法(一)