18、函数

介绍

本文是在学习JS所做的学习笔记,所有笔记内容请看:JS学习笔记

函数对象

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
    
 
   函数
     -函数也是一个对象
     -函数中可以封装一些功能(代码),在需要时可以执行这些功能(代码)
     - 使用typeof 检查一个函数对象时,会返回funciotn
   
    // 创建一个函数对象
    var fun=new Function();
    console.log(fun) // 输出funciotn anonymous()
    
    可以将要封装的代码以字符串的形式传递给构造函数
    字符串为一段字符串代码
    该方式为构造函数创建对象
    var fun = new Function("console.log('函数')")
    
    封装到函数中的代码不会立即执行
    函数中的代码会在函数调用的时候立即执行
    调用函数 语法:函数对象()
    当调用函数时,函数中封装的代码会按照顺序执行
    fun()// 输出‘函数’
    
    
    函数对象具有所有普通对象的功能
    fun.hello = 'hello';
    console.log(fun.hello) // 输出hello
    
   一般不使用构造函数创建函数
    /*
      使用函数声明创建一个函数
         语法:
            function 函数名([形参1,形参2,....形参N]){
                语句。。。
            }
            
    */
    function fun2(){
        
    }
    console.log(fun2)
    
    
  
    使用函数表达式来创建一个函数
    实际就是创建一个匿名函数,然后将函数赋值给一个变量
       var 函数名 = function([形参1,形参2,...形参N]){
           
       }
   
    // 如下为匿名函数
   var fun3 = function(){
        console.log("匿名函数")}// 最好写上分号,因为为赋值语句
                                      
    </script>
  
</head>
<body>
</body>
</html>

函数参数

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
    

   函数参数
     可以在函数()中指定一个或多个形参(形式参数),多个形参
     之间使用逗号隔开,声明了形参相当于在函数内部声明了对应的变量
     但是并不赋值
    function sum(a,b){
        cossole.log(a+b);
    }
  
    在调用函数时,可以在()中指定实际参数,
    实参会赋值给函数中对应的形参

    
    调用函数时解析器不会检查实参的类型,
      要注意,是否有可能会接受到非法的参数,如果有可能需要对参数
      进行类型检查。
      函数的实参可以是任意数据类型
       
     调用函数,解析器也不会检查实参的数量,多余的实参不会被赋值   
     如果实参的数量少于形参的数量,则没有对应实参的形参将是undefined 
 
    sum(123,"ad");
    sum(123,456,"hel",true)
                          
    </script>
  
</head>
<body>
</body>
</html>

函数返回值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
    

    创建一个函数,计算三个数的和
       
    使用return 设置函数返回值,作为函数的执行结果
       语法:
          return 值
      在函数中,return后的语句都不会执行了  
      如果return后不跟值,会返回undefined
      return后可以跟任意类型的值  
   
    
    function sum(a,b,c){
       return a+b+c;
    }
    
    var res=sum(1,3,4);   
    </script>
  
</head>
<body>
</body>
</html>

示例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
    
    
   创建一个函数,可以在控制台输出个人信息
      输入的参数 name 、age、gender adress
      参数过多时,可以使用对象将 参数进行封装。。     
         

     函数实参可以是一个对象,也可以是一个函数

     function sayhello(){
         console.log('helo')
     }
     
     // 函数参数为一个函数
     function fun(a){
         a()
     }
     
     fun(sayhello());// 输出heLlo
     
     // 使用匿名函数,函数中传入匿名函数作为实参
     fun(funciton(){ alert('a')})//弹窗提示a
     
     
     function mianji(r){
         return 3.14*r*r;
     }
    
      mianjin() // 调用函数
      mianjin  // 函数对象

     fun(mianjin)
     
                          
    </script>
  
</head>
<body>
</body>
</html>

return 介绍

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
 
    使用return 可以结束整个函数
    return 可以返回一个函数
 
    
    function fun3(){
        // 函数内部声明一个函数
        function fun4(){
            alert('fun4')
        }
        return fun4;
    }
    // 将函数对象作为返回值,赋值给了a
    a=fun3()// a为fun4函数对象
    a() // 调用fun4()
                          
    </script>
  
</head>
<body>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/MoonNight608/article/details/106433031
今日推荐