变量声明提高和函数声明提高

 

 一道面试题被虐惨了 看了书看了资料整理的 不记得看了谁的文章了 这是整理后 有部分同样的不要打我//html

 


 变量声明提高面试

 

<!DOCTYPE html>
<html>
<head><script>
var i = 20;
function n(){
    alert(i);
};
n();
</script>
</head>
</html>   //结果是20
<!DOCTYPE html>
<html>
<head><script>
var i = 20;
function n(){
    alert(i);
    var i = 50;
};
n();
</script>
</head>
</html>   //结果是undefined

 

↑变量声明提高会把变量声明提早,可是变量初始化还在后面,若是在变量初始化前面输出,变量还未初始化,就会alert出undefined,这是变量声明提高。函数

 

 

函数声明提高是在执行代码以前会读取函数声明。能够把函数声明放在调用他的语句后面。spa

函数声明是把一个函数值赋值给了变量,因此能够进行函数声明提早。函数表达式是一个表达式是把函数对象赋值给了变量,因此不能进行函数声明提早。code

 

 

函数表达式和函数声明的区别:htm

函数声明格式
function(arg0,arg1,arg2){
    //函数体
} 
函数表达式格式
var functionName = function(arg0,arg1,arg2){ //函数体 }

一、函数声明必须有标识符,也就是函数名,函数表达式能够省略函数名。对象

二、函数声明提高,能够把函数声明放在调用他的语句后面。函数表达式不能够,会报错。blog

三、函数声明语句能够出如今全局代码中,或者内嵌在其余函数中,不能出如今循环、条件判断或者try/finally以及with语句中。ip

相关文章
相关标签/搜索