• JavaScript函数表达式 学习篇


    定义函数的方式有两种,一种是函数声明,另一种就是函数表达式。

    函数声明的语法:

    function sayHello(){
        alert("hello")
    }

    首先是function关键字,然后是函数名。

    函数声明提升:可以先调用函数,而函数声明放在其后,因为执行函数前会读取函数声明

    sayHello();
    function sayHello(){
        alert("hello")
    }

    接下来是函数表达式创建函数的方法:

    var sayHello = function(){
        alert("hello")
    }
    sayHello();

    这样创建的函数也成为 匿名函数(拉姆达函数) 因为function后面没有标识符。

    当然了,用函数表达式创建的函数就不能像上面函数表达式创建的函数一样 先调用函数 再声明了 会报错(函数还不存在)。

    千万不要这么做:

    var a = false;
    if (a) {
        function sayHello(){
            alert("hello")
        }
    }else{
        function sayHello(){
            alert("a is false")
        }
    };

    表面上根据a的boolean值返回不同的函数,但是大多数浏览器会返回第二个声明(火狐会在a为true时返回第一个声明)。

    那怎么办呢 , 使用函数表达式就没问题了:

    var a = false;
    var sayHello;
    if (a) {
        sayHello = function(){
            alert("hello")
        }
    }else{
        sayHello = function(){
            alert("a is false")
        }
    };

    不同的函数会根据a的boolean值被赋值给sayHello。

    能创建函数再赋值给变量,也就意味着函数可以作为其它函数的返回值返回:

    function returnFunction(){
        return function subFunction(){
            alert("son function")
        }
    }
    var a = returnFunction()
    alert(a.name)

    a.name = subFunction,还可以返回匿名函数:

    function returnFunction(name){
        return function(){
            return name
        }
    }
    var a = returnFunction("white55开")
    var b = a()
    alert(b) 

    b = "white55开"

    这并不是匿名函数唯一的用途,更多用途会在开发中遇到

  • 相关阅读:
    jQuery Ajax 实例 全解析
    简易的AJAX工具[转]
    一些JSON 教程
    写一个ajax程序就是如此简单
    ecshop中ajax的调用原理 1
    ECSHOP中ajax的调用原理
    ul中li分列显示
    PHP serialize & JSON 解析
    c++字符集之间转换(UTF-8,UNICODE,Gb2312)
    各种字符集和编码直接的联系详解
  • 原文地址:https://www.cnblogs.com/cherrylv/p/6322047.html
Copyright © 2020-2023  润新知