正在缓慢地看书... 书上有这么个例子:
首先我是在网页中用 <script>
加载的,像这样:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<script src="learn.js"></script>
</body>
</html>
然后是 learn.js
的内容
function getQueryStringArgs() {
var qs = (location.search.length > 0 ? location.search.substring(1) : "");
var args = {};
var items = qs.length ? qs.split("&") : [];
var item = null;
var name = null;
var value = null;
var i = 0;
var len = items.length;
for (i = 0; i < len; i++) {
item = items[i].split("=");
name = decodeURIComponent(item[0]);
value = decodeURIComponent(item[1]);
if (name.length) {
args[name] = value;
}
}
return args;
}
// 以上是书上的例子
// 以下是我自己加的运行语句
location.assign("http://www.google.com/?q=javascript&num=10");
var args = getQueryStringArgs();
alert(args["num"]);
那个 function 是把 url 里面的 query 拆成 object 这个很容易看懂啦。
问题是这样运行是不对的,每次都先给我跳出 alert,每次都是 undefined
,然后才跳到 http://www.google.com/?q=javascript&num=10
这个页面。
JS 运行不是应该自上而下么?不是应该先把 location 设好了再运行下面的语句么?为什么实际运行不是这样的呢?