zoukankan      html  css  js  c++  java
  • JavaScrip:Function函数编程

     

    自定义函数定义

    1.函数通过function关键字创建,函数创建格式:

    function 函数名称([参数,...]){
        代码段;
        return 返回值;
    }

    注意事项:

    • 函数名称不要包含特殊字符
    • 函数名称最好含义明确
    • 函数名称最好遵循驼峰标记法或者下划线法
    • 函数名称严格区分大小写
    • 函数名称如果重复会产生覆盖
    • 函数可以有参数也可以没有参数,可以有一个参数也可以有多个参数
    • 函数通过return加返回值,如果没有return 默认返回undefined
    • 函数不调用不执行

    匿名函数

    • 函数表达式可以存储在变量中,变量也可以作为一个函数使用
    • 可以将匿名函数作为参数传递给其它函数,接收方函数就可以通过所传递进来的函数完成某些功能
    • 可以通过匿名函数来执行某些一次性的任务

    通过Function()构造函数

    通过内置JavaScrip函数构造器(Function)定义:

    • var myFunction=new Function('a','b','return a+b');
    • var myFunction=function(a,b){return a+b;};

    注意:

    1. 以上两种方式是等价的
    2. 尽量避免使用new关键字

    调用函数

    1. 作为一个函数调用:
      1. 通过函数名称()进行调用,如果有参数传递相应参数即可
      2. 在HTML中默认的全局对象是HTML页面本身,所以函数是属于HTML页面。在浏览器中的页面对象是浏览器窗口(window对象).所以函数会自动变为window对象的函数。也可以通过window.函数名称()进行调用
    2. 全局对象
      1. 当函数没有被自身的对象调用时,this的值就会变成全局对象。在web浏览器中全局对象是浏览器窗口window对。
      2. 函数作为全局对象调用,会使this的值称为全局对象。使用window对象作为一个变量容易造成程序崩溃
    3. 函数作为方法调用
      1. 可以将函数定义为对象的方法进行调用
    4. 使用构造函数调用函数
      1. 如果在函数调用前使用了new关键字,则调用了构造函数
    5. 作为回调函数调用函数
      1. call()
      2. apply()

    参数

    • 函数可以有参数也可以没有参数,如果定义了参数,在调用函数的时候没有传值,某人设置为undefined
    • 在调用函数时候如果传递参数超过了定义时参数,js会忽略掉多余参数
    • js中不能直接写默认值,可以通过arguments对象来实现默认值效果
    • 可以通过arguments对象实现可变参数的函数
    • 通过值换地参数在函数体内对变量做修改不会影响变量本身
    • 通过对象传递参数在函数体内对变量做更改会影响变量本身

    变量的作用域

    • 局部变量  
      • 在函数体内声明的变量,仅在函数体内可以用  
    • 全局变量
      • 函数体外生命的变量,在变量声明开始到脚本结束都可以使用  
    • 注意
      • 尽量控制全局变量的数量,容易引发bug
      • 最高使用var语句来声明变量        

     javascrip全局函数

    待续。。

    特殊形式的函数

    • 函数也是数据
      • javascrip中的函数也是一种数据类型,只不过这种类型只有两个重要的特性  
        • 他们所包含的是代码
        • 他们是可执行的
  • 相关阅读:
    js设计模式-工厂模式(XHR工厂)
    js设计模式-工厂模式(抽象工厂)
    javascript设计模式-工厂模式(简单工厂)
    转载【梦想天空(山边小溪)】Web 开发人员和设计师必读文章推荐【系列二十九】
    转载【H:JL】用大家的力量来总结一个目录(众人拾柴火焰高)
    javascript设计模式-单体模式
    javascript设计模式-掺元类
    javascript设计模式-继承
    开博第一天
    iOS开发 在某个视图控制器中 隐藏 状态栏
  • 原文地址:https://www.cnblogs.com/richiewlq/p/7593832.html
Copyright © 2011-2022 走看看