函数

函数

①函数定义
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>函数定义</title>
    <script>
        'use strict';
        //定义方式一
        function abs(x){
            //手动抛出异常来解决传递的参数空或类型不一致
            if(typeof x!=='number'){
                throw 'Not a Number';
            }
            //arguments是一个JS的关键字,代表传递进来的所有的参数,是一个数组。当前如传了多个参数,则只计算第一个。
            console.log("x=>"+x);
            for(var i=0;i<arguments.length;i++){
                console.log(arguments[i]);
            }
            if(x>=0){
                return x;
            }else{
                return -x;
            }
        }
        //定义方式二
        // var abs=function (x) {
        //     if (x >= 0) {
        //         return x;
        //     } else {<!DOCTYPE html>

②参数获取
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>参数获取</title>
    <!--rest关键字
        arguments包含所有的参数,我们有时候想使用多余的参数来进行附加操作。需要排除已有参数
    -->
    <script>
        //以前
        function Old(a,b){
            console.log("a=>"+a);
            console.log("b=>"+b);
            if(arguments.length>2){
                for(let i=2;i<arguments.length;i++){
                    console.log(arguments[i]);
                }
            }
        }
        //现在
        function New(a,b,...rest){
            console.log("a=>"+a);
            console.log("b=>"+b);
            console.log(rest);//rest只能写在最后面,必须...标识,rest返回的是一个数组。
        }
    </script>
</head>
<body>

</body>
</html>
③变量的作用域
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>变量的作用域</title>
    <!--var 定义变量实际上是有作用域的-->
    <!--
        1.变量在函数体中声明,则在函数外不可以使用。
        2.如果两个函数使用了相同的变量名,只要在函数内部,就不冲突。
        3.内部函数可以访问外部函数的成员,反之则不行。
        4.JavaScript中函数查找变量从自身函数开始,由‘内’向‘外’查找,假设外部存在这个同名的函数变量,则内部函数会屏蔽外部函数的变量。
        5.定义在函数外的变量为全局变量。
        6.全局对象-window
           var x='xxx';
           alert(x);
           alert(window.x);默认所有的全局变量都会自动绑在window对象下
    -->
    <script>
        //alert()这个函数本身也是一个window变量
        var x='xxx';
        window.alert(x);
        var old_alert=window.alert;
        window.alert=function (){

        };
        //发现alert()失效了
        window.alert(123);
        //恢复
        window.alert=old_alert;
        window.alert(456);
    </script>
</head>
<body>

</body>
</html>
④let
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>let关键字</title>
    <script>
        //ES6 let关键字 let定义局部变量
        function Yu(){
            for(let i=1;i<=100;i++){
                console.log(i);
            }
            console.log(i+1);// Uncaught ReferenceError: i is not defined
        }
    </script>
</head>
<body>

</body>
</html>
⑤const
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>const</title>
    <script>
        //ES6引入关键字 const
        const PI='3.14';
        console.log(PI);
        //PI='2'; 不能改变值
    </script>
</head>
<body>

</body>
</html>
⑥方法一
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>方法</title>
    <script>
        var Yu={
            //属性
            name:Yu,
            birth:2000,
            //方法
            age:function (){
                var now=new Date().getFullYear();
                return now-this.birth;
            }
        }
    </script>
</head>
<body>

</body>
</html>
⑦方法二
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>方法2</title>
    <script>
        function getAge(){
            var now=new Date().getFullYear();
            return now-this.birth;
        }
        var Yu={
            name:'Yu',
            birth:2000,
            age:getAge
        }
        //getAge.apply(Yu,[]); 也可以得到年龄 this指向Yu []-参数为空
    </script>
</head>
<body>

</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值