var parseQueryString = function (url) {
var reg_url = /^[^\?]+\?([\w\W]+)$/,
reg_para = /([^&=]+)=([\w\W]*?)(&|$)/g, //g is very important
arr_url = reg_url.exec(url),
ret = {};
if (arr_url && arr_url[1]) {
var str_para = arr_url[1], result;
while ((result = reg_para.exec(str_para)) != null) {
ret[result[1]] = result[2];
}
}
return ret;
}
//使用方法:
var url = "key0=0&key1=1&key2=&key3=http://www.g.cn?a=1&&b=2";
var obj = parseQueryString(url);
console.dir(obj);
获取URL的参数的value
function GetUrlParam(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
//构造一个含有目标参数的正则表达式对象
var r = window.location.search.substr(1).match(reg);
//匹配目标参数
if(r != null) return unescape(r[2]);
return null; //返回参数值
}
----------
//传参数之前对中文的url参数进行
window.location =
encodeURI(encodeURI("xxx.html?title=" + "中文"));
//接收参数的地方
decodeURI(GetUrlParam('title'));
基本数据类型(深拷贝->改变副本中的数据,对前者没有任何影响):
包括str、num、boolean、null、undefined
引用类型(浅拷贝->改变副本中的数据,对前者有任何影响)
:就是对象。包括object、Array、function、date
var a = 4;
var b = a;
b = 6;
console.log(a);//4
var a = 5;
function num(x) {
x = 6;
console.log(x);//6
}
num(a);
console.log(a);//5
将变量传入函数相当于复制一个变量,然后把这个复制的变量传入到函数中。
a是一个数字类变量,它的复制对象跟它之间没有任何联系。
在函数内部改变a的值并不会改变函数外a的值。