zoukankan      html  css  js  c++  java
  • JavaScript函数学习要点总结(一)

    1、函数的最大作用是提供代码复用;

    2、JavaScript函数是弱类型语言,定义函数时既不要声明函数的返回值,也不要声明函数的参数列表类型;

    语法如下:

    1 function functionName(parameter-list){
    2   statements; 
    3 }

    3、函数可以有返回值,也可以无返回值。函数运行过程中遇到一条return语句即返回返回值,函数结束;

    1 function hello(){
    2     return 6;
    3 }
    4 
    5 alert(hello());//输出6;

    4、局部函数:在函数A内定义一个函数B,则B为局部函数,局部函数B只能在函数A内调用有效,无法在函数A之外调用,如果在函数A之外调用,将会报未定义错误;

     1 function A(){
     2    //定义局部函数B1;
     3    function B1(){
     4       document.write("局部函数inner1");
     5    }    
     6    //定义局部函数B2;
     7    function B2(){
     8       document.write("局部函数inner2");
     9    }      
    10    
    11    //调用局部函数;
    12    B1();//输出"局部函数inner1";
    13    B2();//输出"局部函数inner2";  
    14 };
    15 //调用全局函数;
    16 A();
    17 //在函数A外部调用局部函数B1;
    18 B1();//在firefox的firebug下的控制台中可以看到错误提示“B1 is not defiend”;

    5、JavaScript允许传递空参数给函数,但是却不允许使用未定义的变量或函数;传递空参数给函数,虽然会得到undefined值,但是浏览器不会报错;但如果使用未定义的变量或函数,浏览器会报未定义错误;

    6、如果将一个对象的某个实例方法用“对象名.方法名()”的形式当作函数调用,则既不会得到undefined值,也不会报未定义错误,而是会报“XX  is not a function”错误;

    7、匿名函数的创建方式:

    方式一:使用new关键字加Function对象创建;

    var f = new Function('name','document.write(name)');
    //Function对象构造器的参数可以不受限制。
    //Function可以接受一系列的字符串参数,其中最后一个参数是函数的执行体;执行体的各语句以分号隔开;

    方式二:直接创建;

    var f = function(name){document.write(name)};
    f('yeeku');

    8、可以将一个函数赋给一个普通变量,将一个函数abc赋给一个普通变量f后,通过f()即可调用abc函数,而abc()将失去作用,无法调用,如果调用,将报abc未定义错误;但是在IE中的IE8以下版本的浏览器中却不一样,在IE8以下的浏览器中将一个函数赋给一个普通变量后,将会得到两个一样的函数,两个都可以调用;

    var f = function abc(name){
          document.write(name);
    }
    f('yeku');//输出yeku;
    abc('yeku');//在firefox中报未定义错误,在IE中输出yeku;

    9、函数的局部变量、实例属性和静态属性;

    局部变量:在函数中以普通方式声明的变量,包括以var或不加任何前缀声明的变量;

    局部变量只能在函数内调用,在函数外调用将会报未定义错误;

    实例属性:在函数中以this前缀修饰的变量;实例属性是属于单个对象的,只有对象才可以调用,类如果调用实例属性将会出现未定义错误;

    静态属性:在函数中以函数名为前缀修饰的变量;

    静态属性是属于类的,只有类才可以调用,对象如果调用静态属性将会出现未定义错误;

  • 相关阅读:
    unity-疑难杂症(一)
    unity-【UI】点击交互(一)
    asp.net core 附加进程调试、指令等
    几种定时器(timer)的区别
    ObjectDisplay 对象属性展示 Display
    IEnumerable,ICollection,IList,List 比较
    Excel等格式文件从服务端调用导出
    Azure DevOps 与VS 2019
    从 数据库表 生成 项目实体 文件
    Border样式
  • 原文地址:https://www.cnblogs.com/macliu/p/3382937.html
Copyright © 2011-2022 走看看