Mark did explain it to me once, and I'm pretty sure it was mainly to do with non strict not having scoped locals as in they are all in scope at the top of the function so goto is not so problematic.
Until now I've been using the Return solution, as in if I've needed to exit twice out of an internal loop it has been very simple to move the code into it's own function/method with the code becoming more readable as a result.
I hadn't considered the throw option, and I like it. If an inner loop needs to terminate the operation I can quite happily think of it as an exceptional situation and you get the opportunity to add some extra code to handle it that doesn't bulk up the looop code.
Until now I've been using the Return solution, as in if I've needed to exit twice out of an internal loop it has been very simple to move the code into it's own function/method with the code becoming more readable as a result.
I hadn't considered the throw option, and I like it. If an inner loop needs to terminate the operation I can quite happily think of it as an exceptional situation and you get the opportunity to add some extra code to handle it that doesn't bulk up the looop code.