JavaScript函数—function()


1.函数的概念

官方概念函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。

定义一个函数时,要使用关键词function;没有关键词function就不是函数,小括号前面是函数名称,代码块写在大括号内,函数名的命名规则和变量名的命名规则一样,见名思意”,“驼峰命名法”

关键词和函数名称之间用空格隔开,当没有函数名称时,这种函数称之为匿名函数,例如:

var  Btn=document.getElementById('button');
Btn.οnclick=function(){      //无函数名称,为匿名函数
         alert("Hello World");
}

注:函数写完之后,要调用才能有效触发函数内的代码。

实例:
function  add(){
        var a=5,b=6;
        var c=a+b;
        alert(c);
}
add();    //调用函数add();

调用带参数的函数:当在调用函数时,可以向函数内传递若干值,这些值为形式参数,简称形参。参数可以有若干,用“(,)”隔开。大括号内的为函数体,括号外的为函数头,函数头部体现的是函数的设计,函数体体现的是函数的设计过程,故函数头部比函数体重要

函数的作用:利用函数可以解决一些比较复杂的问题,这跟数学中的利用函数思想去解决一些难题的性质是一样的,说简单点就是在JS中,利用函数可以将“大事化小”。

 实例:验证哥德巴赫猜想的成立:

 /*
      * 验证哥德巴赫猜想:任一大于2的偶数都可写成两个质数之和
      * (1)输入获取任意偶数数字num
      * (2)将数字进行分解
      * (3)在2-num 间遍历,找出之间的质数,判断若有a+b=num,(a,b为找出的质数),则猜想成立
      * 
*/
      var Flag=true,a;
      for(var i=6;i<10000;i+=2){
          if(!canSplit(i)){
              Flag=false;
              break;
          }
      }
      alert(Flag?'猜想成功!':"猜想失败")
      //分解数
      function canSplit(num) {
          for(var k=2;k<num/2;k++){
             if(isPrime(a)&&isPrime(num-a)){
                 return true;
             }
          }
         return false;
      }
      //判断素数
      function isPrime(x) {
          for(var j=2;j<Math.sqrt(x);j++){
              if(x%j==0){
                  return false;
              }
          }
          return true;
      }

函数的本质:直观理解就是实现某个独立功能的代码段,或者说它就是一个数据加工的黑箱子。



 2.参数传递

参数传递分为值传递引用传递

值传递:

 var a=5;
 add(a);
 alert(a);
 function add(x) {
        x++;
 }

执行代码后,可以看到a的值并没有+1;可见形参和实参并没有任何关系。

引用传递:

 var a=new Object();
     a.value=5;
     add(a);
     alert(a.value);
     function add(x) {
          x.value++;
      }

执行程序后可以知道a.value没有被显式修改,但是a.value的确+1了,因为x就是a,或者说x是a的别名,说的专业点就叫引用。

常规类型的参数采用的是值传递,比如Number 、String、Boolean

对象类型采用的是引用传递,比如Object

3.变量作用域

若函数内部变量没有声明,则视为全局变量。





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

废柴前端

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值