web前端一起努力

JavaScript之函数

2018-03-01  本文已影响2人  追逐_chase
timg.jpg

函数

函数声明

function 函数名字( 参数1,参数2){
执行语句
}
调用: 函数名称()


    <script type="text/javascript">
        
        //调用函数
        sayHello();
        //声明函数
        function sayHello() {

            console.log("您好。欢迎您")
        }

    </script>

函数表达式
<script type="text/javascript">

    //匿名函数
    function () {
    console.log("这是一个匿名函数");
    }
       
//赋值给变量--> 函数表达式
        var fuc = function (a) {

            console.log(a)
        };

        fuc("哈哈")
    </script>

函数名的提升---预解析
// script标签1
<script type="text/javascript">
    f1();
    function f1 () {
        console.log("看看");
    }
</script>

// script标签2
<script type="text/javascript">
    
    f1();
    function f1 () {
        console.log("这还是");
    }
    
    
</script>
//变量提升  没有问题
f();
function f() {}
// 变量提升 有问题
f1();
var f1 = function (){};
//  TypeError: undefined is not a function
//解释
//预解析
var f1;
f1(); //报错
f1= function (){};


<script type="text/javascript">


        
        var num = 10;
        func();

        function  func() {

            console.log(num);
            var num = 20;
        }


    </script>
//结果是: undefined
相当于这样的代码

 <script type="text/javascript">

        var num = 10;

        func();

        function  func() {
          //变量提升到头部
            var num;
            console.log(num);
            num = 20;
        }
    </script>

    f1();
    
    console.log(c);//9
    console.log(b);//9
    console.log(a); //报错
    
    function f1 () {
        var a = b = c = 9; //b,c是隐式函数  全局
        console.log(a); // 9
        console.log(b); //9
        console.log(c);//9
        
    }

//解释 函数f1内部的变量  只有 a是var声明的 局部变量 b和c是隐式全局变量

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

函数的参数 和 返回值

参数
 <script type="text/javascript">

        sayHello("你是?","哈哈");

        function sayHello(a,b) {
       console.log(arguments.length);
            console.log(a + b)
        }

    </script>

//打印结果:
2
你是?哈哈

返回值
      //返回值
      var c  = sum(10,20);
        console.log(c)
      //打印结果: 30
      //定义函数
        function sum(num1,num2) {

            return num1 + num2
        }
作用域
function fn () {
    //隐式全局变量
    num = 100;
};
    fn(); //调用
    console.log(num);
作用域链
作用域链.jpg

函数递归

//递归求和
    
    function getSum (x) {
      //如果 x是1的话  返回1
        if (x == 1) {
            return 1;
        }
        
        return x + getSum(x -1);
        
    }
    
    console.log(getSum(5));  ===》 15
    

递归.jpeg

//求出个位数 然后相加
function getEverySum (x) {
        if (x < 10) {
            
            return x;
        }
        
        //获取这个数字的个位数   一直获取个位 相加
        return x%10 + getEverySum(parseInt(x/10));
    }
    
    console.log(getEverySum(136));
上一篇 下一篇

猜你喜欢

热点阅读