function里面可以加弹窗吗 function ()_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.变量作用域

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