zoukankan      html  css  js  c++  java
  • JavaScript function函数种类介绍

    JavaScript function函数种类介绍

    本篇主要介绍普通函数、匿名函数、闭包函数

    1.普通函数介绍

    1.1 示例

    1
    2
    3
    function ShowName(name) {
        alert(name);
    }

    1.2 Js中同名函数的覆盖

    在Js中函数是没有重载,定义相同函数名、不同参数签名的函数,后面的函数会覆盖前面的函数。调用时,只会调用后面的函数。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var n1 = 1;
     
    function add(value1) {
        return n1 + 1;
    }
    alert(add(n1));//调用的是下面的函数,输出:3
     
    function add(value1, value2) {
        return value1 + 2;
    }
    alert(add(n1));//输出:3

    1.3 arguments对象

    arguments 类似于C#params,操作可变参数:传入函数的参数数量大于定义时的参数数量。

    1
    2
    3
    4
    5
    6
    7
    function showNames(name) {
        alert(name);//张三
        for (var i = 0; i < arguments.length; i++) {
            alert(arguments[i]);//张三、李四、王五
        }
    }
    showNames('张三','李四','王五');

    1.4 函数的默认范围值

    若函数没有指明返回值,默认返回的是'undefined'

    1
    2
    3
    function showMsg() {
    }
    alert(showMsg());//输出:undefined

      

    2.匿名函数

    2.1 变量匿名函数

    2.1.1 说明

    可以把函数赋值给变量、事件。

    2.1.2 示例

    1
    2
    3
    4
    5
    //变量匿名函数,左侧可以为变量、事件等
    var anonymousNormal = function (p1, p2) {
        alert(p1+p2);
    }
    anonymousNormal(3,6);//输出9

    2.1.3 适用场景

    ①避免函数名污染。若先声明个带名称的函数,再赋值给变量或事件,就造成了函数名的滥用。

    2.2 无名称匿名函数

    2.2.1 说明

    即在函数声明时,在后面紧跟参数。Js语法解析此函数时,里面代码立即执行。

    2.2.2 示例

    1
    2
    3
    (function (p1) {
        alert(p1);
    })(1);

    2.2.3 适用场景

    ①只需执行一次的。如浏览器加载完,只需要执行一次且后面不执行的功能。

    3. 闭包函数

    3.1 说明

     假设,函数A内部声明了个函数B,函数B引用了函数B之外的变量,并且函数A的返回值为函数B的引用。那么函数B就是闭包函数。

    3.2 示例

    3.2.1 示例1:全局引用与局部引用

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function funA() {
        var i = 0;
        function funB() { //闭包函数funB
            i++;
            alert(i)
        }
        return funB;
    }
    var allShowA = funA(); //全局变量引用:累加输出1,2,3,4等
     
    function partShowA() {
        var showa = funA();//局部变量引用:只输出1
        showa();
    }

    allShowA是个全局变量,引用了函数funA。重复运行allShowA(),会输出1,2,3,4等累加的值。

    执行函数partShowA(),因为内部只声明了局部变量showa来引用funA,执行完毕后因作用域的关系,释放showa占用的资源。

    闭包的关键就在于作用域:全局变量占有的资源只有当页面变换或浏览器关闭后才会释放。var allShowA = funA() 时,相当于allShowA引用了funB(),从而使funB()里的资源不被GC回收,因此funA()里的资源也不会。

    3.2.2 示例2:有参闭包函数

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function funA(arg1,arg2) {
        var i = 0;
        function funB(step) {
            i = i + step;
            alert(i)
        }
        return funB;
    }
    var allShowA = funA(2, 3); //调用的是funA arg1=2,arg2=3
    allShowA(1);//调用的是funB step=1,输出 1
    allShowA(3);//调用的是funB setp=3,输出 4

    3.2.3 示例3:父函数funA内的变量共享

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function funA() {
        var i = 0;
       function funB() {
            i++;
            alert(i)
        }
        allShowC = function () {// allShowC引用匿名函数,与funB共享变量i
            i++;
            alert(i)
        }
        return funB;
    }
    var allShowA = funA();
    var allShowB = funA();//allShowB引用了funA,allShowC在内部重新进行了绑定,与allShowB共享变量i

    3.3 适用场景

    ①保证函数funA内里的变量安全,因为外部不能直接访问funA的变量。

    ==================================系列文章==========================================

    本篇文章:3.2  JavaScript function函数种类介绍

    Web开发之路系列文章

    1.HTML

      1.1 HTML页面源代码布局介绍

      1.2 HTML基础控件介绍

      1.3 iframe 和 frameset 的区别

      1.4 name、id、class 的区别

      1.5 table、form表单标签的介绍以及get和post提交方式

    2.CSS 层叠样式表

      2.1 CSS 选择器及各样式引用方式介绍

      2.2 CSS HTML元素布局及Display属性介绍

      2.3 CSS Float 浮动属性介绍

      2.4 CSS Position 定位属性介绍

    3.JavaScript介绍

      3.1 JavaScript var关键字、变量的状态、异常处理、命名规范等介绍

      3.2 JavaScript function函数种类介绍

      3.3 Json对象、类、数组、字典操作

    4.Dom

      4.1 Window对象 : 对浏览器的当前窗口进行操作。

      4.2 Navigator对象 :对浏览器进行操作。包括获取浏览器的名称、平台、版本信息等等。

      4.3 Screen对象 :对显示器屏幕进行操作。包括获取屏幕的高度、宽度。

      4.4 Location对象 :对当前页面的URL进行操作。

      4.5 Document对象 : 对HTML内的元素进行操作。

      4.6 Event对象 :HTML元素的事件操作。

    5.Jquery

      5.1 Jquery选择器

      5.2 常用的方法

      5.3 对数组、字典进行操作

      5.4 指定一个对象,获取相邻元素

      5.5 动态操作HTML元素

      5.6 事件操作

      5.7 动画操作

      5.8 Css操作

      5.9 扩展插件

    6.EasyUI 框架

    7.其他技术

      7.1 Ajax

      7.2 正则表达式

      

    只是记录了自己在学习、使用Web前端内容时的心得和碰到的问题。内容里的很多部分参考自 http://www.w3school.com.cn/

     
     
     
    标签: Web
  • 相关阅读:
    Informatica_(6)性能调优
    Informatica_(5)高级应用
    Informatica_(4)工作流
    Informatica_(3)组件
    Informatica_(2)第一个例子
    Informatica_(1)安装
    Linux_(4)Shell编程(下)
    Linux_(3)Shell编程(上)
    Linux_(2)基本命令(下)
    B
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3297168.html
Copyright © 2011-2022 走看看