javascript三种声明函数的方法。function 命令、函数表达式、Function构造器。

(1)function 命令

function命令声明的代码区块,就是一个函数。function命令后面是函数名,函数名后面是一对圆括号,里面是传入函数的参数。函数体放在大括号里面。

    function add(x, y) {
        console.log(x + y)
    }
    add(3,4);//7

上面的代码命名了一个add函数,输出两个数字相加的和,以后使用add()这种形式,就可以调用相应的代码。这叫做函数的声明(Function Declaration)。

(2)函数表达式

除了用function命令声明函数,还可以采用变量赋值的写法。

    let add=function (x, y) {
        console.log(x + y)
    };
    add(3,4);

这种写法将一个匿名函数赋值给变量。这时,这个匿名函数又称函数表达式(Function Expression),因为赋值语句的等号右侧只能放表达式。

采用函数表达式声明函数时,function命令后面不带有函数名。如果加上函数名,该函数名只在函数体内部有效,在函数体外部无效。

    let add=function addAdd(x, y) {
        console.log(addAdd)
    };
    console.log(addAdd) //报错  未定义
    add(3,4);// 输出函数本身

上面代码在函数表达式中,加入了函数名addAdd。这个addAdd只在函数体内部可用,指代函数表达式本身,其他地方都不可用。这种写法的用处有两个,一是可以在函数体内部调用自身,二是方便除错(函数内部报错时,函数名存在时报错时错误信息中会包含函数名,函数名不存在时会指向引用的值的名称)。因此,下面的形式声明函数也非常常见。

    let add = function add(x, y) {
        console.log(x + y)
    };
    add(3, 4);

需要注意的是,函数的表达式需要在语句的结尾加上分号,表示语句结束。而函数的声明在结尾的大括号后面不用加分号。总的来说,这两种声明函数的方式,差别很细微,可以近似认为是等价的。

(3) Function 构造器

    let add=new Function(
        'x','y','console.log(x+y)'
    )
    add(3,4);//7
    
    let say=new Function(
        'console.log("hello")'
    )
    say();//hello

你可以传递任意数量的参数给Function构造函数,只有最后一个参数会被当做函数体,如果只有一个参数,该参数就是函数体。

Function构造函数可以不使用new命令,返回结果完全一样。 总的来说,这种声明函数的方式非常不直观,几乎无人使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值