[19/05/29-星期三] JavaScript_ 函数的简介

一、函数的简介

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>函数的入门</title>
    </head>
    <script type="text/javascript">
        /*函数(function)也是个对象,可以封装一些代码,在需要时调用
         使用typeof检查函数对象时,会返回function
         可以将要封装的代码以字符串的形式传递给构造函数
         封装到函数中的代码不会立即执行,函数中代码会在函数调用时执行。 语法:函数对象名();
        封装的代码会按顺序执行
         * */
        var fun=new Function("console.log('你敲代码好low呀');");/*这方式很少使用*/
        fun();
        /*使用函数声明来创建函数 (形参可有可无 即无参函数)
         function 函数名(形参1,形参2...){
             函数体;
         }
         * */
        function fun2(){
            console.log("你敲代码好像蔡徐坤呀");
        }
        fun2();
        /*使用函数表达式来创建函数 --即创建匿名函数,然后把匿名函数赋值给一个变量
         var 函数名=function(形参1,....){
             
         }
         * */
        var fun3= function(){
            console.log("哈哈");
        };//这里最好加个分号,这是个赋值语句
        fun3();
        
    </script>
    <body>
    </body>
</html>

二、函数参数和返回值

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>函数的参数</title>
    </head>
    <script type="text/javascript">
        /*这里声明形参跟Java中不同,这里不用指定形参类型。它就相当于在函数内部声明了对应的变量var
         1)浏览器的解析器不会检查实参的类型。即使传个参数("你好",123) 也不会报错。所以有时需要检查判断传入的数据类型
         2)也不会检查实参的数量,多余的实参不会被赋值,也不会报错 (123,45,6)不会报错
         3)如果实参的数量不够,则缺少的实参数据类型是undefined 输出结果为NaN
函数内部也可以声明函数。 * * *
*/ function add(a,b){ console.log(a+b); } add(2,3); /*函数的返回值 ,在函数中它不用指定的数据类型去接收,跟Java不同。在调用时接收这点是一样的 return 之后的语句都不会执行 。return后边什么也不跟或不写return就相当于返回一个undefined return 可以返回任意类型的值。也可以是个对象,也可以是个函数
return 是它后边的语句都不会执行。break是跳出所有的循环,换句话说若是循环后边还有语句,还会执行,但是return则不是,直接退出函数也 *
*/ function add2(a,b,c){ var sum=a+b+c; return sum; } var result=add2(3,6,7); console.log(result); console.log(add2(3,12,8)); </script> <body> </body> </html>

练习

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>函数参数的练习</title>
        <script type="text/javascript">
            function isEven(n){/*判断一个数是不是偶数,是偶数返回true不是返回false*/
            /*    if(n%2==0){
                    console.log(n+"是偶数");
                }else{
                    console.log(n+"不是偶数");
                }*/
                
                return n%2==0; 
                
            }
            console.log(isEven(17));
            
            function area(R){//计算圆的面积
                return 3.14*R*R;
            }
            console.log(area(10));
            /*实参可以是任意一个数据类型,包括一个对象。当参数过多时,可以封装成一个对象传递*/
            var obj={
                name:"猴子",
                age:18,
                address:"花果山"
            }
            function sayHello(o){
                console.log("姓名:"+o.name+",年龄:"+o.age+",住址:"+o.address);
            }
            sayHello(obj);
            /*实参也可以是个函数*/
            function fun (a) {
                console.log("a="+a);
                a(obj);//调用a就是调用函数sayHello
            }
            fun(sayHello);//这里sayHello就是一个函数 同理fun也可以传个匿名函数.
            //fun(sayHello());调用sayHello函数 fun(sayHello);调用sayHello函数对象
            fun(function(){ console.log("hello")});
            
        </script>
    </head>
    <body>
    </body>
</html>

猜你喜欢

转载自www.cnblogs.com/ID-qingxin/p/10961599.html
今日推荐