

為啥少了個var,運行結果不同
uj5u.com熱心網友回復:
變數應用范圍不一樣 function q(b){
if (b.length<=1){
return b;
}else{
r=b.splice(parseInt(b.length/2),1);
var w=r[0];
left=[];
var right=[];
for(i=0;i<b.length;i++){
if(b[i]>w){
left.push(b[i])
}else{
right.push(b[i])
}
}
document.write('w<br/>')
document.write(w+'<br/>')
var result = q(left).concat(w,q(right))
document.write('w callback<br/>')
document.write(w+'<br/>')
return result;
}
}
document.write(q(a).join(','))有var,變數在當前程序中生效,不與呼叫者混用
w
2
w
11
w callback
11
w callback
2
13,11,3,2,1
var a=[1,3,2,11,13]
function q(b){
if (b.length<=1){
return b;
}else{
r=b.splice(parseInt(b.length/2),1);
w=r[0];
left=[];
var right=[];
for(i=0;i<b.length;i++){
if(b[i]>w){
left.push(b[i])
}else{
right.push(b[i])
}
}
document.write('w<br/>')
document.write(w+'<br/>')
var result = q(left).concat(w,q(right))
document.write('w callback<br/>')
document.write(w+'<br/>')
return result;
}
}
document.write(q(a).join(','))
沒有var,檢測呼叫者是否有同名變數,如果有,則參考同名變數
w
2
w
11
w callback
11
w callback
11
13,11,3,11,1
uj5u.com熱心網友回復:
第一張圖就是不知道為啥最后w從11跳到2,求大佬解答下轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/284531.html
標籤:JavaScript
