超实用的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
超实用的JavaScript技巧及最佳实践给的更多相关文章
- 【转】超实用的JavaScript技巧及最佳实践
众所周知,JavaScript是一门非常流行的编程语言,开发者用它不仅可以开发出炫丽的Web程序,还可以用它来开发一些移动应用程序(如PhoneGap或Appcelerator),它还有一些服务端实现 ...
- 超实用的JavaScript技巧及最佳实践
众所周知,JavaScript是一门非常流行的编程语言,开发者用它不仅可以开发出炫丽的Web程序,还可以用它来开发一些移动应用程序(如PhoneGap或Appcelerator),它还有一些服务端实现 ...
- 超实用的JavaScript技巧及最佳实践(上)
在这篇文章中,作者将会向大家分享JavaScript开发的小技巧.最佳实践等非常实用的内容,不管你是前端开发者还是服务端开发者,都应该来看看这些小技巧,它们绝对会让你受益的. 文中所提供的代码片段都已 ...
- 超实用的JavaScript技巧及最佳实践(下)
1.使用逻辑符号&&或者||进行条件判断 1 2 3 var foo = 10; foo == 10 && doSomething(); // is the same ...
- 20个超实用的JavaScript技巧及最佳实践
1.第一次给变量赋值时,别忘记var关键字 给一个未声明的变量赋值,该变量会被自动创建为全局变量,在JS开发中,应该避免使用全局变量. 2.使用===替换== 并且永远不要使用=或!=. ...
- javascript编程的最佳实践推荐
推荐的javascript编程的最佳实践,摘要记录在这里: 可维护的代码保证代码的性能部署代码 1 可维护的代码1.1什么是维护的代码:可理解性——其他人可以接手代码并理解它的意图和一般途径,而无需原 ...
- 避免Java应用中NullPointerException的技巧和最佳实践
Java应用中抛出的空指针异常是解决空指针的最好方式,也是写出能顺利工作的健壮程序的关键.俗话说"预防胜于治疗",对于这么令人讨厌的空指针异常,这句话也是成立的.值得庆幸的是运用一 ...
- (译) 《Javascript 24条最佳实践》
(摘录) <Javascript 24条最佳实践> 自己一直偏向于实用主义,不是学院派,不是学究派,只讲究把东西能够很好的做出来,但经过一段时间的开发工作当自己总结出来一些东西时,觉得挺有 ...
- nodejs进阶(1)——npm使用技巧和最佳实践
nodejs进阶教程,小白绕道!!! npm使用技巧和最佳实践 前提:请确保安装了node.js npm的最佳实践 npm install是最常见的npm cli命令,但是它还有更多能力!接下来你会了 ...
随机推荐
- spring boot 文件上传大小配置
在启动类中,添加bean import javax.servlet.MultipartConfigElement; import org.springframework.boot.SpringAppl ...
- Ubuntu 16.04安装微信
微信没有出Linux的版本,但是可以通过以下方式解决: 1.使用网页版,除了没有公众号之后,一切都没问题,包括传文件等. 网页登录地址:https://wx.qq.com/ 2.使用第三方版本,只不过 ...
- RED HAT 7 性能监控工具
https://access.redhat.com/documentation/zh-CN/Red_Hat_Enterprise_Linux/7/html/Performance_Tuning_Gui ...
- 【Android开发—智能家居系列】(三):手机连接WIFI模块
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 概述 实现连接WIFI的功能会用到一个工具类,源码可以点击链接下载.网上这些类似的工具类里的代码差不多是一样的.连接无线网主要有 ...
- Angularjs: call other scope which in iframe
Angularjs: call other scope which in iframe -------------------------------------------------------- ...
- JBoss 6.1安装配置问题
一,配置环境变量 JBOSS_HOME:配置到解压文件的根文件夹下: classpath跟JAVA_HOME:配置的解压文件夹\bin文件夹以下: 二,訪问端口号 因为我之前安装过Tomcat,所以占 ...
- 一次mysql优化经历
某日运维突然说无线终端的频道页接口訪问量非常大,memcache缓存扛只是来.导致mysql并发查询量太大,导致server不停地宕机,仅仅能不停地重新启动机器.遗憾的是运维并没有告诉mysql查询量 ...
- 获取连接状态数的awk数组命令
awk -n|more zhutianpeng@ztp-OptiPlex-:~/Icpp/server$ netstat -n|more 激活Internet连接 (w/o 服务器) Proto Re ...
- J2SE核心开发实战(二)——字符串与包装类
字符串与包装类 一.实验简单介绍 在本章.我们将学习一些用于处理字符串的API以及包装类的相关知识. 本章知识点 字符串API 包装类及其应用 二.认识字符串类 1. 什么是字符串类 Java字符串类 ...
- Kafka知识点汇总
整体结构 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZXJpY19zdW5haA==/font/5a6L5L2T/fontsize/400/fill/I ...