我不明白在變量被分配一個數字後我是如何繼續以「null」結尾的。變量重置爲默認選項,爲什麼?
function evalKayScript(syn){
coms = extract(syn,"{...}");
document.write(JSON.stringify(coms));//debug
for(x in coms){
ops = extract(coms[x],"(...)");
com = null; //<-- ***com preset null***
for(y in funNames){
if(ops[1] == funNames[y]){
com = y; //<-- ***com changed to "y"***
}
}
alert(com); <-- alerts given below (first two alerts)
if(com == null){
alert("Command ((("+ops[1]+"))) Not Registered!");
return null;
}
exe = funValues[y];
inputs = execVars(ops[2]);
inputs = extract(inputs,"[...]");
for(y in inputs){
exe.replace(new RegExp("/\(\%"+y+"\%\)/gim"),inputs[y]);
}
exe.replace(new RegExp("/\(\%name\%\)/gim"),ops[0]).replace(new RegExp("/\(\%function\%\)/gim"),ops[1]);
exea = exe;
if(exe.replace(new RegExp("/\:\:\:javascript/gim"),"")! = exes){ //<-- new invalid ":" error
eval(exe);
}else{
evalKayScript(exe);
}
}
}
我不明白爲什麼,變「COM」變爲一個數字,然後回空... 我已經安裝了一些錯誤,我自己的形式捕捉,我結束了與這些警報:
在 http://jstone88.bugs3.com/kayscript/file1.html0 //<-- var com
null //<-- ***var com? this makes no sense, how does it go back to null?***
Command ((("(%name%) already exists!"))) Not Registered! //<--caused by if(com == null) This is normal.
直播腳本,並在http://jstone88.bugs3.com/kayscript/kayscript.js
它看起來像有隻是沒有匹配'funNames [Y]'通過循環的第二次。 –
'com = null;'在每次迭代*中將'com'設置爲'null' *。你的問題並不清楚。 –
?但是這沒有任何意義,只有一個在funNames預置功能,肯定是有一些缺少我沒有看到,和@Felix王,它只是應該經過一次,因爲我進入,'{(輸出)(自定義)([document.write(\「(%0%)\」);] [::: javascript])}。和'com = null;'在賦予它一個新值的循環之前設置。 – ModerateJavaScriptDev