日期:2014-05-16  浏览次数:20347 次

javaScript技巧积累
1.字符串反转
var sMyString = "abcdefg";
alert(sMyString.split("").reverse().join(""));
/*	split("")将每一个字符转为一个数组元素
reverse()反序数组的每个元素
join("")再最后将数组无连接符的转为字符串
*/


2.函数的arguments属性
为当前执行的 function 对象返回一个arguments 对象。
function.arguments
function 参数是当前执行函数的名称,可以省略。
说明
通过 arguments 属性,函数可以处理可变数量的参数。 arguments 对象的 length 属性包含了传递给函数的参数的数目。对于arguments 对象所包含的单个参数,其访问方法与数组中所包含的参数的访问方法相同。

function ArgTest(a, b){ 
   var i, s = "The ArgTest function expected "; 
   var numargs = arguments.length;     // 获取被传递参数的数值。 
   var expargs = ArgTest.length;       // 获取期望参数的数值。 
   if (expargs < 2) 
      s += expargs + " argument. "; 
   else 
      s += expargs + " arguments. "; 
  if (numargs < 2) 
     s += numargs + " was passed."; 
   else 
     s += numargs + " were passed."; 
   s += "\n\n" 
  for (i =0 ; i < numargs; i++){      // 获取参数内容。 
   s += "  Arg " + i + " = " + arguments[i] + "\n"; 
   } 
  return(s);                          // 返回参数列表。 
} 

.用 arguments 对象判断传递给函数的参数个数,即可模拟函数重载:

function doAdd() {
  if(arguments.length == 1) {
    alert(arguments[0] + 5);
  } else if(arguments.length == 2) {
    alert(arguments[0] + arguments[1]);
  }
}

doAdd(10);	//输出 "15"
doAdd(40, 20);	//输出 "60"

function fnAdd(){
	if(arguments.length == 0)
		return;
	else if(arguments.length == 1)
		return arguments[0] + 5;
	else{
		var iSum = 0;
		for(var i=0;i<arguments.length;i++)
			iSum += arguments[i];
		return iSum;
	}
}
document.write(fnAdd(45) + "<br>");
document.write(fnAdd(45,50) + "<br>");
document.write(fnAdd(45,50,55,60) + "<br>");