超实用的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命令,但是它还有更多能力!接下来你会了 ...
随机推荐
- 安装配置JDK+Eclipse+Maven、Eclipse里新建Maven Project以及HDFS命令和Java API-课堂内容
步骤:1.安装JDK→2.安装Eclipse→3.安装Maven→4. Eclipse里配置Maven (下载Windows版本,在Windows里安装使用.) 1.安装配置JDK ①官网下载Java ...
- ,java反射机制实现拦截器
实现一个拦截器必须要实现一下几个类: 1 目标类接口:目标类要实现的接口. package com.lanvis.reflect; public interface ITarget { pub ...
- 使用git 高效多人合作
复习一下... 附加学习链接: http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/) ...
- Thrift --- 支持双向通信
[问题] Thrift采用了C/S模型,不支持双向通信:client只能远程调用server端的RPC接口,但client端则没有RPC供server端调用,这意味着,client端能够主动与serv ...
- [转]使用Fabric自动化你的任务
fabric是什么? Fabric是一个Python库,可以通过SSH在多个host上批量执行任务.你可以编写任务脚本,然后通过Fabric在本地就可以使用SSH在大量远程服务器上自动运行.这些功能非 ...
- 【Discuz】ucenter通讯失败与Discuz的头像无法显示
假设是Discuz论坛的一些小样式图片.仅仅须要升级一下Discuz论坛的论坛或者,直接把整个网站的css的首域名替换一下.比方将127.0.0.1:8080/..开头的东西全改成127.0.0.1: ...
- 我理解的ios和android
近期着手了几个android和ios的项目,如今说下我的几个对他们的理解 从设计上来讲.我觉得android 它更像是个网页,一个页面跳到另外一个页面,两者之间的关联不是非常大,仅仅能传递一些简单的參 ...
- Android中Intent具体解释(二)之使用Intent广播事件及Broadcast Receiver简单介绍
通过第一篇的解说,我们已经看到了怎样使用Intent来启动新的应用程序组件,可是实际上他们也能够使用sendBroadcast方法来在组件间匿名的广播消息. 作为一个系统级别的消息传递机制,Inten ...
- Java多线程面试题归纳
1.多线程有哪几种实现方法?举个样例说明下线程的同步. (1)Java多线程有两种实现方式:继承Thread类和实现Runnable接口,Thread就是实现了Runnable接口. 两个最简单的线程 ...
- c# 连接各种数据库 Access、Server等
1.C#连接连接Access程序代码: using System.Data;using System.Data.OleDb;..string strConnection="Provider= ...