第24天:js-函数变量声明提升
2017-09-06 23:25
405 查看
一、函数声明
1、自定义函数
function fun1(){
alert("我是自定义函数");
}
fun2();//函数不调用,自己不执行
2、直接量声明
var fun2=function(){
alert("直接量声明");
}
fun2();
3、利用Function关键字声明
var fun3=new Function("var a=10;b=20;alert(a+b)");
fun3();
二、变量声明提升
如果在一个函数体内部声明了一个变量,不管这个变量函数外部有没有,先执行函数内部的变量,会将变量声明提升到函数开始部分,但是不会赋值。
在函数体内部声明变量,会把该声明提升到函数体的最顶端。但是只提升变量声明,不赋值。
var num=10;
fun1();
function fun1(){
console.log(num);
var num=20;//变量提升
}//undefined
相当于
var num=10;
fun1();
function fun1(){
var num;
console.log(num);
num=20;
}
三、函数传参
函数实参个数要与形参个数相同,arguments.length可以获取函数实参的个数
1、自定义函数
function fun1(){
alert("我是自定义函数");
}
fun2();//函数不调用,自己不执行
2、直接量声明
var fun2=function(){
alert("直接量声明");
}
fun2();
3、利用Function关键字声明
var fun3=new Function("var a=10;b=20;alert(a+b)");
fun3();
二、变量声明提升
如果在一个函数体内部声明了一个变量,不管这个变量函数外部有没有,先执行函数内部的变量,会将变量声明提升到函数开始部分,但是不会赋值。
在函数体内部声明变量,会把该声明提升到函数体的最顶端。但是只提升变量声明,不赋值。
var num=10;
fun1();
function fun1(){
console.log(num);
var num=20;//变量提升
}//undefined
相当于
var num=10;
fun1();
function fun1(){
var num;
console.log(num);
num=20;
}
三、函数传参
函数实参个数要与形参个数相同,arguments.length可以获取函数实参的个数
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 <script> 7 /*变量提升*/ 8 /*window.onload=function(){ 9 var num=10; 10 fun1(); 11 function fun1(){ 12 console.log(num); 13 var num=20;//变量提升 14 } 15 }//结果:undefined*/ 16 17 /*var a=18; 18 f1(); 19 function f1(){ 20 var b=9; 21 console.log(a); 22 console.log(b); 23 var a='123'; 24 }//undefined,9 25 */ 26 /*函数传参*/ 27 /*function f1(a,b){ 28 console.log(a+b); 29 } 30 f1(1,2);//3 31 f1(5);//NaN*/ 32 33 /*检测函数参数个数匹配*/ 34 function fn(a,b){ 35 console.log(fn.length);//获取函数形参的个数 36 console.log(arguments.length);//得到的是实参的个数 37 if(fn.length==arguments.length){ 38 console.log(a+b); 39 }else{ 40 console.log("对不起,您的参数不匹配,正确的参数个数为:"+fn.length); 41 } 42 } 43 fn(5,3);//2,2,8 44 fn(2,3,4)//2,3,"对不起..." 45 46 47 </script> 48 </head> 49 <body> 50 51 </body> 52 </html>
相关文章推荐
- Js 变量声明提升和函数声明提升
- js变量和函数声明的提升(转)
- JS面试中的的变量提升和函数声明
- JS变量声明提升、函数声明提升
- JS 变量和函数的声明提升
- Js中有关变量声明和函数声明提升的问题
- js 函数定义,使用,作用域,变量声明提升,遇解析.....
- Js 变量声明提升和函数声明提升
- Js中有关变量声明和函数声明提升的问题
- JS中的函数声明提升和变量声明提升
- js变量声明提升,变量作用域与函数作用域,作用域链
- js函数声明提升与变量提升
- js代码执行过程,js预编译,变量声明提升,函数体整体提升
- javascript的变量声明和函数声明提升
- 深入理解变量声明提升和函数声明提升
- 深入理解js的变量提升和函数提升
- javascript的变量声明和函数声明提升
- JS入门难点解析2-JS的变量提升和函数提升
- js变量提升与函数提升
- 详解变量声明提升和函数声明提升