JS编程建议——18:比较function语句和function表达式

建议18:比较function语句和function表达式
在JavaScript语言中,既有function语句,也有函数表达式,这是令人困惑的,因为它们看起来是相同的。一个function语句就是值为一个函数的var语句的简写形式。
下面的语句:

  1. function f() {}
    相当于:
  2. var f=function() {}
    这里建议使用第二种形式,因为它能明确表示f是一个包含一个函数值的变量。要用好JavaScript这门语言,理解函数就是数值是很重要的。

function语句在解析时会被提升,这意味着不管function被放置在哪里,它都会被移动到定义时所在作用域的顶层。这放宽了函数必须先声明后使用的要求,当然这也会造成混乱。
在if语句中也是禁止使用function语句的。大多数的浏览器都允许在if语句中使用function语句,但它们在解析function语句的处理上各不相同,因此造成了可移植性方面的问题。
根据官方的语法约定,一个语句不能够以一个函数表达式开头,而以单词function开头的语句是一个function语句。解决这个问题的方法就是把函数表达式括在一个圆括号之中。

  1. (function () {
  2. //…
  3. }());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值