夜光序言:

 

 

 

 

喜欢你 就会在想起你时微笑 至于你是否明白我微笑的原因 我一点也不在意 就像风很舒服时我也微笑 太阳很舒服时我也微笑 而风和太阳就跟你一样 不会明白我微笑的原因 我怎么对待风和太阳我就怎么对待你......

 

 

 

 

夜光带你走进 前端工程师(二十七 jS )

 

正文:

 

 函数申明

Black         King

Function[函数]

 

函数:由事件驱动的或者当它被调用时执行的可重复使用的代码块

 

 

来调用就可以了,重复使用好多次   联想:四大发明中印刷术

函数就像印刷术


 函数的申明

函数使用和变量一样,需要申明

1:自定义函数:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<script>
    //function  //等价于var
    function fun() {
        alert("我是已定义函数");
    }
    fun();  //函数不调用,自己不执行 【关键】
</script>
</body>
</html>


夜光带你走进 前端工程师(二十七 jS )

2:函数直接量申明

var fun1=function(){
    alert("直接量申明")
};
fun1();

夜光带你走进 前端工程师(二十七 jS )

3:Function  关键字来申明

var fun2=new Function("var a=10; var b=21 ; alert(a+b)");
fun2();

夜光带你走进 前端工程师(二十七 jS )

函数不调用就不执行

 

变量提升

                     夜光

 

经典面试题:

 

 

<script>
    f1();
    console.log(c);
    console.log(b);
    console.log(a);
    function f1(){
        var a=b=c=9;
        console.log(a);
        console.log(b);
        console.log(c);
        
    }
    
</script>

 

// 面试题f1();先执行这个  输出999

//b c全局变量 99

//a  局部变量 undefined

 

 

<script>

var num=10;
fun();
function fun(){
    console.log(num);
    var num=20;
    
}

    
</script>

 

//输出undefined

夜光带你走进 前端工程师(二十七 jS )

什么是变量提升:

function fun(){
    console.log(num);
    var num=20;
    
}

等同于:

function fun(){

var num;  // 没有赋值  所以 为undefined
    console.log(num);
    num=20;
    
}

在函数体内部,申明变量,会把该申明提升到函数体的最顶端,只提升变量声明,不赋值

 


var a=18;
f1();
function f1(){
    var b=9;
    console.log(a);
    console.log(b);
    var a="123";
}

// 联想面试真题

夜光带你走进 前端工程师(二十七 jS )

var b=9;  //局部变量

 

变量提升的原理:等同于下面这个:

function f1(){
    var b=9;

var a   //a没有赋值   undefined
    console.log(a);
    console.log(b);
    a="123";
}

 console.log(b); //输出123

 

检测参数个数匹配

                            夜光

 


<script>
      function fn(a,b) {   //a,b 形参
           console.log(a+b);
      }
    fn(1,2);   //实参
</script>

夜光带你走进 前端工程师(二十七 jS )

<script>
      function fn(a,b) {   //a,b 形参
           console.log(a+b);
      }
    fn(1,2);   //实参
    fn(5);   //  这个怎么搞  嘿嘿   一个数字+NaN = NaN   输出NaN

fn(1,1,1);    //输出2,第三个1没有要  所以输出2

//学过其他java语言  形参实参必须匹配
</script>

 

 

Arguments  存储了函数传送过来的实参

<script>
    function fn(a,b){
        console.log(fn.length);   //得到的是  函数的形参的个数
    }
    fn(1,2);
</script>

 

//得到的是  函数的形参的个数为2

夜光带你走进 前端工程师(二十七 jS )

 

<script>
    function fn(a,b){  //形参
        console.log(fn.length);   //得到的是  函数的形参的个数
        console.log(arguments);   //输出[1,2]  实参 接手过来 实参

console.log(arguments.length);   //得到的是  函数的实参的个数
    }
    fn(1,2);  //实参
</script>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相关文章:

  • 2021-09-21
  • 2021-04-26
  • 2021-04-27
  • 2021-09-28
  • 2021-09-15
  • 2021-09-16
  • 2021-04-23
  • 2021-09-04
猜你喜欢
  • 2021-10-20
  • 2021-12-16
  • 2021-08-26
  • 2021-04-08
  • 2021-12-30
  • 2021-07-05
  • 2021-05-18
相关资源
相似解决方案