ExtJS系列学习(1)——开发环境配置

 函数是JavaScript中最核心的或者说最难的部分,其本质是一段可重复执行的程序块。然而它并没有那么简单,因为函数在JavaScript中即可以是方法,也可以是类,还可以是对象,总之十分灵活,所以要悟透函数还的是一个潜移默化的过程。函数是JS模仿面向对象的个基石,要学好JS,学好流行的各种JS库,首先要过函数这一关。
       函数的功能就是组织一块块代码,然后被其他地方调用,传统的函数只被拿来做一些极小的应用,因为其本身一直被当作过程化的语言使用。在Ajax流行以后,由于需要组织大量的代码,程序急需被模块化,各个模块之间又要相互协调工作,所以Javascript模仿了面向对象的手法,通过面向对象支持的三大特性封装,继承和;多态,使的一个个模块可以被反复使用。各类JS库也就是这么的诞生。 要把一块块代码封装起来便于使用,JS是通过函数来模仿类完成的这个过程的。所以函数是我们需要深究的东西。
 
要点:
1, 无名函数 ,有名函数的区别
  func();    //此句报错
  var func = function(){
                  alert(1);
             }  
  func(); //正确
  对于有名函数, 调用语句可以出现在定义函数之前或之后;
  对于无名函数, 调用语句必须在定义函数之后;

2. 函数可以嵌套定义
 function  getNumbers(arr){
       for(var i=0;i<arr.length; i++){
             if(isNumber(arr)) alert(arr);
       }
       function isNumber(s) {
           return typeof s == "number"
       }
   }
   内部的函数只能在其外部函数的范围内被调用。

3. 函数名也是变量
    它存储的是函数类型的数据,是一个特殊的变量。不属于Javascript的基本数据类型。也不可以和其他数据类型转换。可以通过typeof判断一个
变量是不是函数
 alert(typeof getNumbers); //返回 "function"

   既然函数是特殊的变量, 那么也可以把一个函数类型的变量值赋值给另一个变量,通过另一个变量名来进行函数访问
 var aa = getNumbers;
 alert(aa(["1",1]));

4, 函数与事件关联注意的问题
 (1),执行关联函数
  document.body.onload = function(){
           alert(1);
         }
 (2), 通过函数名关联
 document.body.onload = aa;  //千万不能写成aa(); 这表示执行函数 把函数的结构赋值给onload事件
 function aa(){
    alert(1);
 }

5、 函数传参可以按值传递和引用传递
  按值传递 在函数体改变变量的值不会影响到调用方。
  按引用传递, 在函数体改变变量的值会影响到调用方。
 function func1(s){
   s++;
   alert(s);
 }
var s =1 ;
func1(s);  //输出2
func1(s);  //输出1     说明只是简单的值拷贝

 function func1(obj){
   obj.flag ="aa";
  }
var obj = new Object;
alert(obj.flag);  //输出"undefined";
func1(obj);   
alert(obj.flag);  //输出"aa";

6, 函数命名冲突
  有时候全局变量和函数内的局部变量同名,这个时候就发生了命名冲突的问题,当发生冲突时,
函数内部优先使用局部变量,对局部变量的操作不会影响到全局变量。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值