Twitter で ECMAScript (JavaScript) の catch 節のスコープについての話をみかけた ので、ちょっと調べてみた。 catch( err ) の err のスコープは? 例外処理の機構で使用される catch( err ) ですが、この err はどの範囲で有効なのか? 普通に考えると catch 節内だけで有効な気がするけど、ECMAScript では一般に関数ごとにスコープを持つと言うし、関数全体? まさかグローバル? (function test() { try { throw 0; } catch( err ) { print( err ); // 0 } print( err ); // [ERROR] err is not defined })(); 試したところ、どうやら catch 節内だけのスコープがある模様。 ECMA-262 (5th