浏览 2913 次
锁定老帖子 主题:测试一下你属于哪种人
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-05-11
http://www.terrainformatica.com/index.php/?p=32
抄自What will following JavaScript function return? function test() { try { return "I am optimist"; } finally { return "I am pessimist"; } } Try to answer as this is a good chance to measure your attitude 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-05-11
跟着又有一题:
And what answer will give us following function? function test() { var flavour = "optimistic"; try { return flavour = "pessimistic", "I am " + flavour + " optimist"; } finally { return "I am " + flavour + " pessimist"; } } |
|
返回顶楼 | |
发表时间:2008-05-11
还有一个变态的:
function foo() { try { try { return 1/0; } catch(e) { return 2; } finally { return 3; } } catch(e) { return 4; } finally { return 5; } } |
|
返回顶楼 | |
发表时间:2008-05-11
只要try被执行,不论执行到哪里,finally语句最终都要被执行。
如果try语句中有return、continue、break、throw语句转移控制流离开try语句块的话,要将这个转移做等待,转移前要执行finally语句块的内容。 如果finally语句中有return、continue、break、throw语句转移控制流的话,try/catch中等待的控制流转移将被舍弃而执行finally中的。 所以上两例,都应该是最外层的finally语句的返回值被最终返回,其余的被舍弃。 |
|
返回顶楼 | |
发表时间:2008-05-11
同2楼见解
|
|
返回顶楼 | |
发表时间:2008-05-11
引用 And what answer will give us following function?
返回名称为test的函数?执行test()的结果等于执行返回的那个函数的结果? |
|
返回顶楼 | |
发表时间:2008-05-12
s79 写道 只要try被执行,不论执行到哪里,finally语句最终都要被执行。
如果try语句中有return、continue、break、throw语句转移控制流离开try语句块的话,要将这个转移做等待,转移前要执行finally语句块的内容。 如果finally语句中有return、continue、break、throw语句转移控制流的话,try/catch中等待的控制流转移将被舍弃而执行finally中的。 所以上两例,都应该是最外层的finally语句的返回值被最终返回,其余的被舍弃。 同意S79 |
|
返回顶楼 | |
发表时间:2008-05-13
一个有意思的问题!
不过好像有点标题党的嫌疑哦!:) |
|
返回顶楼 | |