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>