`
mutongwu
  • 浏览: 448473 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

【Js小伎俩】小结

阅读更多
复制数组
var orgArray = [];
var target = orgArray.concat();


foreach形式的便利特点
//该遍历会输出对象及其函数prototype上的属性/方法,但不会枚举出继承的属性!
for (p in o)
	alert(p);

Javascript 不存在块层次的作用域。
if (true) {
   var color = “blue”;
}
for (var i=0; i < 10; i++){
   doSomething(i);
}
alert(i); //10
alert(color); //”blue”



强制浏览器从服务器端加载页面
location.reload(true);//强制从获取服务器数据
location.reload();//有可能获取的是缓存数据


每一个函数都拥有length属性,表示该函数声明的参数个数
function sayName(name){
	alert(name);
}
function sayHi(){
	alert('Hi');
}
function sum(num1,num2){
	alert(num1 + num2);
}
alert(sayName.length);//1
alert(sayHi.length);//0
alert(sum.length);//2


构建由一个字符组成的特定长度的字符串
if (!String.repeat) {
	String.prototype.repeat = function(l){
	return new Array(l+1).join(this); }
}
//例子
var str = 'a'.repeat(5);// 'aaaaa'


消除字符串的前后空白字符
if (!String.trim) {
  String.prototype.trim = function() {
      return this.replace(/^\s+|\s+$/g,'');
  }
}


将"word-word"形式的字符串转换为"wordWord"
function camelize(s) {
	return s.replace(/-(\w)/g, function (strMatch, p1){
		return p1.toUpperCase();
	});
}


将对象构造成为一个伪数组
var elems = {
    add: function(e){
    	//下面的代码将为对象elems添加2个属性:length(已存在则更新) 和一个数字
        Array.prototype.push.call(this,e);
     }
}
//示例:
for(var p in elems)
    alert(p)//add
elems.add(9);
for(var p in elems)
    alert(p)//add,length,0
elems.add(7);
for(var p in elems)
    alert(p)//add,length,0,1


获取数组中的最大/小值
var arr = [3,4,'2',11];
alert(Math.min.apply(null,arr))
alert(Math.max.apply(null,arr))


数组的索引i的取值范围:
数组的索引i的取值范围是:0<=i<=2^52-1之间的整数,如果i不在这个范围内(超出范围或浮点数或字符串等),其结果并不是添加一个数组元素,而是为该是数字添加了一个属性,也不会被影响到length属性。另外,数组的length属性是可写的,修改它将会对数组进行截断或扩增。
var a = [1,2,3,4]
a[b] = 0;
a[-12]=9
alert(a[b]);//0
alert(a[-12]);//9
alert(a);//1,2,3,4


正则表达式:
//E-MAIL
var pattern = /^[\w\.\-]+@([\w\-]+\.)+[a-zA-Z]+$/;

//日期格式为:YYYY|MM|DD|hh|ss.例如:2010|04|09|12|25
var pattern = /^(?:20\d{2})\|(?:0[1-9]|1[0-2])\|(?:0[1-9]|[12][0-9]|3[01])\|(?:0[0-9]|1[0-9]|2[0-3])\|(?:[0-5]\d)$/;


小数取精度
function roundTo(base,precesion){
	var m = Math.pow(10,precesion);
	return Math.round(base * m)/m;
}

var ret = roundTo(Math.PI,3);//3.142


范围随机整数
function randomBetween(min, max)
{
	return min + Math.floor(Math.random() * (max - min + 1));
}
var ret = randomBetween(1,15);//2 maybe


获取URL的查询字符串
function getQueryStringArgs(){
	//get query string without the initial ?
	var qs = (location.search.length > 0 ? location.search.substring(1) : "");
	//object to hold data
	var args = {};//get individual items
	var items = qs.split("&");
	var item = null,
	name = null,
	value = null;
	//assign each item onto the args object
	for (var i=0; i < items.length; i++){
		item = items[i].split("=");
		name = decodeURIComponent(item[0]);
		value = decodeURIComponent(item[1]);
		args[name] = value;
	}
	return args;
}


判断字符是英文还是中文
var str = "中文en";
alert(str.length);//4 .不区分中英文

//调用 字符串的charCodeAt方法,它将返回字符的的Unicode值。
//对于英文,它的值可以参考ASCII表;而对于中文,它的值将大于 255.
alert(str.charCodeAt(0));//20013
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics