夜光带你走进 前端工程师(二十七 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>


2:函数直接量申明

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

3:Function  关键字来申明

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

函数不调用就不执行

 

变量提升

                     夜光

 

经典面试题:

 

 

<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

什么是变量提升:

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";
}

// 联想面试真题

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>

<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

 

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值