"getParameterMap":function(){
var url = location.search;
var HMRequest = new Object();
if (url.indexOf("?") != -1) {
var str = url.substr(1);
strs = str.split("&");
for(var i = 0; i < strs.length; i ++) {
var pname=strs[i].split("=")[0];
var pvalue=unescape(strs[i].split("=")[1]);
var pvalues=null;
//下边的语句是什么意识啊???????????
if(HMRequest[pname]==null){
//JS创建了新的数组对象并赋值pvalue,赋值给谁了这是,看不懂用呢?
HMRequest[pname]=new Array(pvalue)
}else{
//push(pvalue);向数组的末尾添加一个元素,哪个数组啊?
//HMRequest[pname]是个数组?没看明白啊?
HMRequest[pname].push(pvalue);
}
}
}
return HMRequest;
},
HMRequest[pname]里面只有一个pname你别受他干扰,直接把HMRequest[pname]替换为test
你就明了了
if(test==null){//test为空的话才执行下一句,否则执行else的下一句
test = new Array(123);//把123转换为数组,给test
}else{//非空情况
test.push(456);//给数组再添加一个值
}
要注意这是在for循环里的,会执行很多次的,会发现if只会被调用一次,因为进去后,test就会被赋值了,再也不是null了,以后的循环只会进else里
push就是给test这个数组里不断添东西,假如经过三次for循环,test里会有三个值的,[123,456,456],你想想是不是,数组就是这么用的,在java基础教程的前部分就有关于for循环条件语句if else的详细用法
语言都是如此,有个基础的顺序逻辑在里面