【Js小伎俩】小结

[b]复制数组[/b]

var orgArray = [];
var target = orgArray.concat();


[b]foreach形式的便利特点[/b]

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

[b]Javascript 不存在块层次的作用域。[/b]

if (true) {
var color = “blue”;
}
for (var i=0; i < 10; i++){
doSomething(i);
}
alert(i); //10
alert(color); //”blue”



[b]强制浏览器从服务器端加载页面[/b]

location.reload(true);//强制从获取服务器数据
location.reload();//有可能获取的是缓存数据


[b]每一个函数都拥有length属性,表示该函数声明的参数个数[/b]

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


[b]构建由一个字符组成的特定长度的字符串[/b]

if (!String.repeat) {
String.prototype.repeat = function(l){
return new Array(l+1).join(this); }
}
//例子
var str = 'a'.repeat(5);// 'aaaaa'


[b]消除字符串的前后空白字符[/b]

if (!String.trim) {
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g,'');
}
}


[b]将"word-word"形式的字符串转换为"wordWord"[/b]

function camelize(s) {
return s.replace(/-(\w)/g, function (strMatch, p1){
return p1.toUpperCase();
});
}


[b]将对象构造成为一个伪数组[/b]

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


[b]获取数组中的最大/小值[/b]

var arr = [3,4,'2',11];
alert(Math.min.apply(null,arr))
alert(Math.max.apply(null,arr))


[b]数组的索引i的取值范围:[/b]
数组的索引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


[b]正则表达式:[/b]

//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)$/;


[b]小数取精度[/b]

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

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


[b]范围随机整数[/b]

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


[b]获取URL的查询字符串[/b]

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;
}


[b]判断字符是英文还是中文[/b]

var str = "中文en";
alert(str.length);//4 .不区分中英文

//调用 字符串的charCodeAt方法,它将返回字符的的Unicode值。
//对于英文,它的值可以参考ASCII表;而对于中文,它的值将大于 255.
alert(str.charCodeAt(0));//20013
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值