有人可以帮我分解一下这个剧本并告诉我结果是30105吗?非常感谢你们
function one(numOneIn) {
two(numOneIn * 3); //1x3
document.write (numOneIn); //3
}
function two(aNumberIn) {
document.write (aNumberIn); //1
}
function three(numIn) {
one(numIn * 2);
document.write (numIn);
}
three(5);
答案 0 :(得分:2)
3(5)
调用三,传递数字5,然后:
一个(numIn * 2);
调用一个,传递5 x 2 => 10,然后:
两个(numOneIn * 3)
调用两个,传递10 x 3 => 30,然后
两个将“30”作为字符串写入文档。
控制返回一个,它将传递给它的值(10)写为字符串。
控制返回三,它将传递给它的值(5)写为字符串。
所以最后的字符串是“30105”。
答案 1 :(得分:0)
这是您发布的代码的合理格式版本
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行)。
它会调用three
行上的8
函数,将值5
传递给numIn
参数。
执行的下一行是one(numIn * 2)
(第9行)。
它会调用one
行上的1
函数,将值10
(5 * 2)传递给numOneIn
参数。
执行的下一行是two(numOneIn * 3)
(第2行)。
它会调用行two
上的5
函数,将值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行),它将'5'
添加到DOM,因为numIn
被强制转换为字符串。
第11行结束对three
的调用。
脚本已完成执行。
DOM的最终状态是'30105'
。
答案 2 :(得分:0)
two()
写了30
one()
写了10个
three()
写了5
document.write()
将在光标最后一个位置的正确页面上绘制/写入。
如果您向document.write()
添加一些格式,您就会理解我的意思。
尝试将<br/>
添加到document.write()
前缀或后缀
EG:而不是document.write (numOneIn);
将其重写为document.write ("<br/>"+numOneIn);