javascript函数的声明和调用

javascript函数的声明和调用

函数:将完成某一特定功能的代码集合起来,可以重复使用的代码块。
[]里面的内容可有可无

一、函数的声明方式

A.基本语法function 关键字

function 函数名([参数1],[参数2]...){
    函数体
    [return] //返回值
}
    function math() {
        var num1=parseFloat(prompt("请输入第一个数",""));
        var operator=prompt("请输入运算符","");
        var num2=parseFloat(prompt("请输入第二个数",""));
        var result;
        switch (operator){
            case "+":
                result=num1+num2;
                break;
            case "-":
                result=num1-num2;
                break;
            case "*":
                result=num1*num2;
                operator="x";
                break;
            case "/":
                result=num1/num2;
                operator="÷";
                break;
            default:
                result="输入有误";
        }
        alert(num1+operator+num2+"="+result);
    }
    math();

B.字面量定义的形式(匿名函数)

变量只是存储函数的引用地址

var 变量=function ([参数1],[参数2]...){
           函数体
           [return] //返回值
       };
    var fun=function () {
        var num1=parseFloat(prompt("请输入第一个数",""));
        var operator=prompt("请输入运算符","");
        var num2=parseFloat(prompt("请输入第二个数",""));
        var result;
        switch (operator){
            case "+":
                result=num1+num2;
                break;
            case "-":
                result=num1-num2;
                break;
            case "*":
                result=num1*num2;
                operator="x";
                break;
            case "/":
                result=num1/num2;
                operator="÷";
                break;
            default:
                result="输入有误";
        }
        alert(num1+operator+num2+"="+result);
    };
    fun();

C.以对象的形式声明new 关键字

var 变量=new Function([参数1],[参数2]...函数体);
    var fun=new Function(document.write("我是函数"));
    fun();

二、函数的调用方式

a.函数名()或者变量名();
函数其实是一个对象

    var fun=function() {document.write("我是函数");};
    document.write(fun=='function() {document.write("我是函数");}');
    document.write(fun.toString()==fun);
    document.write(fun.toString()==='function() {document.write("我是函数");}');

输出truetruetrue

b.(函数)();

    (function() {document.write("我是函数");})();

输出 我是函数

三、两种声明方式的区别

1.如果两个函数的命名相同,后面的将会覆盖前面的函数。

    function fun() {
        document.write("我是函数1");
    }
    function fun() {
        document.write("我是函数2");
    }
    fun();

输出 我是函数2

    fun=function () {
        document.write("我是函数1");
    };
    fun=function () {
        document.write("我是函数2");
    };
    fun();

输出 我是函数2

2.以基本语法声明的函数会在代码运行的时候提前加载到内存当中以供以后使用,但是以字面量形式命名的函数会在

执行到的时候才进行赋值。

    function fun() {
        document.write("我是函数2");
    }
    fun=function () {
        document.write("我是函数1");
    };
    fun();

输出 我是函数1

    fun=function () {
        document.write("我是函数1");
    };
    function fun() {
        document.write("我是函数2");
    }
    fun();

输出 我是函数1

    fun();
    function fun() {
        document.write("我是函数2");
    }

输出 我是函数2

3.在不同的块中的函数,使用和调用的时候,应先定义后执行



输出 我是函数2

你可能感兴趣的:(javascript函数的声明和调用)