1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 <script> 7 /**以下代码,在IE8以下有问题,弹出的是2 8 if(true) { 9 function fn() { 10 alert(1); 11 } 12 13 } else { 14 function fn() { 15 alert(2); 16 } 17 } 18 fn(); 19 */ 20 21 /* 22 * 冷门知识点: 23 * 低版本IE在函数声明在判断语句里有问题, 24 * 出现问题的原因:IE预解析有bug 25 * 解决办法:通过函数表达式避免这个问题 26 * */ 27 var fn; 28 if (true) { 29 fn = function () { 30 alert(1); 31 } 32 } else { 33 fn = function () { 34 alert(2); 35 } 36 } 37 fn(); 38 39 </script> 40 </head> 41 <body> 42 43 </body> 44 </html>
原文:http://www.cnblogs.com/mrszhou/p/7748557.html