函数声明创建的函数在现代浏览器,在if语句中函数的声明不会提升,但是在老的IE版本中,if语句中的函数声明会提升
函数表达式在不同浏览器中函数声明都不会被提升,解决了不同浏览器的兼容性问题
关于函数提升在if判断中的表现
<script> // 根据条件声明函数 // 现代浏览器 不会提升if语句中的函数声明 // 在老的IE版本中,if语句中的函数声明也会提升 if (true) { function fn() { console.log('fn - true'); } } else { function fn() { console.log('fn - false'); } } fn(); //函数表达式可以解决if语句在不同浏览器中函数是否提升的问题,没有兼容性问题 var fn; if (false) { fn = function () { console.log('fn - true'); } } else { fn = function () { console.log('fn - false'); } } fn(); </script>