首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

function

Function 构造函数 创建一个新的Function对象。 在 JavaScript 中, 每个函数实际上都是一个Function对象。

你也可以使用Function构造函数和a 来定义函数function expression

语法

代码语言:javascript
复制
function name([param,[, param,[..., param]]]) {
   [statements]
}

name函数名param要传递给函数的参数的名称。不同引擎中的最大参数数量不同。statements包含函数体的语句。

描述

一个被函数声明创建的函数是一个 Function 对象,具有 Function 对象的所有属性、方法和行为。查看 Function 以获取 function 的详细信息。

函数也可以被表达式创建(function expression )

默认情况下,函数是返回 undefined 的。想要返回一个其他的值,函数必须通过一个 return 语句指定返回值。

有条件的创建函数

函数可以被有条件来声明,这意味着,在一个 if 语句里,函数声明是可以嵌套的。有的浏览器会将这种有条件的声明看成是无条件的声明,无论这里的条件是true还是false,浏览器都会创建函数,详见这篇文章。因此,它们不应该被使用。

函数声明提升

JavaScript 中的函数声明被提升到了函数定义。你可以在函数声明之前使用该函数:

代码语言:javascript
复制
hoisted(); // logs "foo"

function hoisted() {
  console.log('foo');
}

注意 :函数表达式function expressions不会被提升:

代码语言:javascript
复制
notHoisted(); // TypeError: notHoisted is not a function

var notHoisted = function() {
   console.log('bar');
};

示例

使用function

下面的代码声明了一个函数,该函数返回了销售的总金额, 参数是产品a,b,c分别的销售的数量.

代码语言:javascript
复制
function calc_sales(units_a, units_b, units_c) {
   return units_a * 79 + units_b * 129 + units_c * 699;
}

规范

Specification

Status

Comment

ECMAScript Latest Draft (ECMA-262)The definition of 'Function definitions' in that specification.

Draft

ECMAScript 2015 (6th Edition, ECMA-262)The definition of 'Function definitions' in that specification.

Standard

ECMAScript 5.1 (ECMA-262)The definition of 'Function definition' in that specification.

Standard

ECMAScript 3rd Edition (ECMA-262)The definition of 'Function definition' in that specification.

Standard

ECMAScript 1st Edition (ECMA-262)The definition of 'Function definition' in that specification.

Standard

Initial definition. Implemented in JavaScript 1.0.

浏览器兼容性

Feature

Chrome

Edge

Firefox (Gecko)

Internet Explorer

Opera

Safari

Basic support

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

Allowed in sloppy mode

49.0

?

Trailing comma in parameters

?

?

52.0 (52.0)

?

?

?

Feature

Android

Android Webview

Edge

Firefox Mobile (Gecko)

IE Mobile

Opera Mobile

Safari Mobile

Chrome for Android

Basic support

No support

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

Allowed in sloppy mode

No support

49.0

?

49.0

Trailing comma in parameters

?

?

?

52.0 (52.0)

?

?

?

?

扫码关注腾讯云开发者

领取腾讯云代金券