<script type="text/javascript">
var number = "10";
(function(){
alert(number);
alert(eval('number=22'));
})();
var func = function() {
alert (new Function( 'return (' + number + ')' )());
}
func(); // prints 22.
</script>
最初にアラートを出し10
、次にアラートを出し22
、なぜアラートを出すのか22 again instead of 10
。eval関数はグローバルスコープの変数をオーバーライドしますか?