前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaScript 函数

JavaScript 函数

作者头像
RiemannHypothesis
发布2022-10-28 14:49:23
5440
发布2022-10-28 14:49:23
举报
文章被收录于专栏:Elixir

函数是一段可以反复调用的代码块。函数还能接受输入的参数,不同的参数会返回不同的值。

函数概述

函数的声明

JavaScript 有三种声明函数的方法。

  1. function 命令 function命令声明的代码区块,就是一个函数。function命令后面是函数名,函数名后面是一对圆括号,里面是传入函数的参数。函数体放在大括号里面。
代码语言:javascript
复制
function print(s) {
  console.log(s);
}
  1. 函数表达式 除了用function命令声明函数,还可以采用变量赋值的写法
代码语言:javascript
复制
var print = function(s) {
  console.log(s);
};
  1. Function 构造函数 第三种声明函数的方式是Function构造函数。
代码语言:javascript
复制
var add = new Function(
  'x',
  'y',
  'return x + y'
);

// 等同于
function add(x, y) {
  return x + y;
}

总的来说,这种声明函数的方式非常不直观,几乎无人使用。

函数的重复声明

如果同一个函数被多次声明,后面的声明就会覆盖前面的声明。

代码语言:javascript
复制
function f() {
  console.log(1);
}
f() // 2

function f() {
  console.log(2);
}
f() // 2

第一等公民

JavaScript 语言将函数看作一种值,与其它值(数值、字符串、布尔值等等)地位相同。凡是可以使用值的地方,就能使用函数。比如,可以把函数赋值给变量和对象的属性,也可以当作参数传入其他函数,或者作为函数的结果返回。函数只是一个可以执行的值,此外并无特殊之处。

由于函数与其他数据类型地位平等,所以在 JavaScript 语言中又称函数为第一等公民。

代码语言:javascript
复制
function add(x, y) {
  return x + y;
}

// 将函数赋值给一个变量
var operator = add;

// 将函数作为参数和返回值
function a(op){
  return op;
}
a(add)(1, 1)
// 2

函数名的提升

JavaScript 引擎将函数名视同变量名,所以采用function命令声明函数时,整个函数会像变量声明一样,被提升到代码头部。所以,下面的代码不会报错。

代码语言:javascript
复制
f();

function f() {}

但是,如果采用赋值语句定义函数,JavaScript 就会报错。

代码语言:javascript
复制
f();
var f = function (){};
// TypeError: undefined is not a function

不能在条件语句中声明函数

根据 ES5 的规范,不得在非函数的代码块中声明函数,最常见的情况就是if语句

代码语言:javascript
复制
if (foo) {
  function x() {}
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 函数概述
    • 函数的声明
      • 函数的重复声明
        • 第一等公民
          • 函数名的提升
            • 不能在条件语句中声明函数
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档