第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

關(guān)于setTimeout調(diào)用中的這個(gè)函數(shù)問題

看書遇到遇到這樣一個(gè)問題。

function shakeWin(stepId){

????var stepId;

????if(!stepId)stepId=0;

????switch(stepId){

????????????case 0: window.moveBy(-5,-5);break;

? ? ????????case 1: window.moveBy(10,0);break;

? ? ????????case 2: window.moveBy(-10,-10);break;

? ? ????????case 3: window.moveBy(10,0);break;

? ? ????????case 4: window.moveBy(-5,-5);????break;

????????????default:return;

}

? ? ? ? stepId++;

????????setTimeout(" ? shakeWin( ?"+stepId+" ?) ? ?;",20);

}

setTimeout(" ? shakeWin( ?"+stepId+" ?) ? ?;",20)

調(diào)用shakeWin函數(shù)時(shí),這個(gè)參數(shù)是什么意思。為什么加了雙引號(hào)有加+號(hào)??

正在回答

4 回答

雙引號(hào)包裹的是前面?? shakeWin( 這一句,+stepld+是字符串操作,為了和前后的字符串組合成setiomeout中的函數(shù)名.stepld是變量 ,例如如果此時(shí)stepld的值為1拼接后就是("shakeWin( 1);",20)

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

無敵小哥兒 提問者

非常感謝,我懂了。
2016-10-09 回復(fù) 有任何疑惑可以回復(fù)我~
#2

無敵小哥兒 提問者

再打擾一下,能解釋一下 if(!step)step=0; 這句話嗎??這個(gè)是干什么用的?起初我認(rèn)為是用在當(dāng)函數(shù)傳遞參數(shù)時(shí),參數(shù)類型錯(cuò)誤時(shí),這句話能把函數(shù)中參數(shù)賦值為 0 所以我認(rèn)為這句話有錯(cuò),就把 ! 非去掉了,但是當(dāng)我調(diào)用函數(shù)時(shí),寫成 shake(a) 時(shí),不執(zhí)行,寫成 shake(7)時(shí),窗口直接向左上角跑去了,拖回來又自動(dòng)跑過去 。。我又加上 ! ,又調(diào)用 shake(a),shake(7), 都沒有反應(yīng)。。。。具體代碼貼在下面了。
2016-10-09 回復(fù) 有任何疑惑可以回復(fù)我~

我認(rèn)為if(!step)step=0;這句話不是判斷類型而是判斷有無傳入值,沒有傳入?yún)?shù)則賦值為0,有傳入?yún)?shù)則直接運(yùn)行下面的代碼。如果你是只把!去掉,變成:if(step)step=0;的話,只要你有傳入?yún)?shù)就會(huì)被賦值為0,而沒有傳入?yún)?shù)的話,step為undefined,那么后面的代碼就運(yùn)行不起來了。而當(dāng)你加回!后,傳入?yún)?shù)7,由于switch里的case只進(jìn)行了0-4的判斷,7的值會(huì)執(zhí)行default的內(nèi)容。

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

無敵小哥兒 提問者

謝謝,我搞懂了。。我一直有個(gè)誤解,就是傳入?yún)?shù)如果不是0,那么!step就為0。。。非常感謝
2016-10-19 回復(fù) 有任何疑惑可以回復(fù)我~
#2

CrazyQueen 回復(fù) 無敵小哥兒 提問者

不客氣
2016-10-21 回復(fù) 有任何疑惑可以回復(fù)我~
<!DOCTYPE?html>
<html>
<head>
<meta?charset="UTF-8">
<title>窗口抖動(dòng)</title>
<script?type="text/javascript">
function?shake(step){
var?step;
if(!step)step=0;
switch?(step){
case?0:?moveBy(-5,-5);break;
case?1:?moveBy(10,0);break;
case?2:?moveBy(-10,10);break;
case?3:?moveBy(10,0);break;
case?4:?moveBy(-5,-5);break;
default?:?return;
}
step++;
setTimeout("shake("+step+")",20);
}
</script>
</head>
<body>
<input?type="button"?onclick="shake()"?value="點(diǎn)我抖動(dòng)窗口">
</body>
</html>


0 回復(fù) 有任何疑惑可以回復(fù)我~

http://img1.sycdn.imooc.com//57f85bc20001131804730026.jpg

圖上的顏色其實(shí)已經(jīng)很明確的說明了為什么加了雙引號(hào)又加+號(hào)了。

黃色部分是這個(gè)計(jì)時(shí)器要執(zhí)行的函數(shù)名稱,而紅色加號(hào)中間的stepId是參數(shù),傳入黃色字符函數(shù)的參數(shù)。至于這個(gè)參數(shù)是什么意思,估計(jì)你要結(jié)合書里前后的代碼內(nèi)容看看。

如何你不使用加號(hào),這個(gè)參數(shù)的值就變成了“stepId”,意義不同了。

這段代碼就是一個(gè)帶傳入?yún)?shù)的計(jì)時(shí)器,里面有一個(gè)根據(jù)傳入?yún)?shù)不同執(zhí)行不同內(nèi)容的判斷(switch那段)。

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

無敵小哥兒 提問者

非常感謝
2016-10-09 回復(fù) 有任何疑惑可以回復(fù)我~
#2

無敵小哥兒 提問者

打擾一下,能解釋一下 if(!step)step=0; 這句話嗎??這個(gè)是干什么用的?起初我認(rèn)為是用在當(dāng)函數(shù)傳遞參數(shù)時(shí),參數(shù)類型錯(cuò)誤時(shí),這句話能把函數(shù)中參數(shù)賦值為 0 所以我認(rèn)為這句話有錯(cuò),就把 ! 非去掉了,但是當(dāng)我調(diào)用函數(shù)時(shí),寫成 shake(a) 時(shí),不執(zhí)行,寫成 shake(7)時(shí),窗口直接向左上角跑去了,拖回來又自動(dòng)跑過去 。。我又加上 ! ,又調(diào)用 shake(a),shake(7), 都沒有反應(yīng)。。。。具體代碼貼在下面了。
2016-10-10 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

關(guān)于setTimeout調(diào)用中的這個(gè)函數(shù)問題

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)