函数声明创建的函数在现代浏览器,在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>
原文:https://www.cnblogs.com/zcsmile/p/10961408.html