下面的代碼的合理格式化的版本,已經發布
1. function one(numOneIn) {
2. two(numOneIn * 3);
3. document.write(numOneIn);
4. }
5. function two(aNumberIn) {
6. document.write(aNumberIn);
7. }
8. function three(numIn) {
9. one(numIn * 2);
10. document.write(numIn);
11. }
12. three(5);
讓我們來看看它是如何執行。
前幾組(1-4,5-7,8-10)定義爲function
。直到被叫,他們纔會執行。
執行的第一行是three(5)
(第12行)。
它調用行8
上的three
函數,將5
的值傳遞給numIn
參數。
執行的下一行是one(numIn * 2)
(第9行)。
它呼籲線1
的one
功能傳遞的10
的值(5 * 2)到numOneIn
參數。
執行的下一行是two(numOneIn * 3)
(第2行)。
它稱5
行two
函數將30
(10 * 3)的值傳遞給參數aNumberIn
。
執行的下一行是document.write(aNumberIn)
(第6行),它將'30'
添加到DOM,因爲aNumberIn
被轉換爲字符串。
第7行結束呼叫two
。
執行的下一行是document.write(numOneIn)
(第3行),它將'10'
添加到DOM,因爲numOneIn
被轉換爲字符串。
第4行結束對one
的呼叫。
執行下一行是document.write(numIn)
(第10行),如numIn
被轉換爲一個字符串這增加'5'
到DOM。
第11行結束呼叫three
。
該腳本已完成執行。
DOM的最終狀態是一個字符串'30105'
。
它實際上是 「30」 + 「10」 + 「5」 – Redu
這些數字哪裏來的,雖然我不知道 – jonathonhub
@jonathonhub,考慮到Stack Overflow是專業和發燒友程序員的用意,你可能會更好地使用一些JavaScript教程來學習語言。作爲一個noob沒有什麼可羞恥的,因爲每個程序員都在某個點或另一個點上,但通常希望SO用戶知道如何閱讀代碼。 – zzzzBov