【Day21】什麽是函式?

函式功能

函式在 JavaScript 中为物件型别,以下列出它一般的物件差别

  • 被呼叫的能力
  • {} 能撰写程序码
  • () 能传递参数
  • 有自己的 this 和执行环境
  • return 能回传值
  • 名称(选配),没名称的叫匿名函式,反之为具名函式

范例:

function fn(parameter) {
    const localVariable = '区域变数';
    console.log(this, localVariable);  // this、区域变数
    return `附加一段${parameter}`  // 回传
};

const data = fn('参数');  // 呼叫函式

console.log(data);

在范例中可以看出函式拥有自己的 this 和变数,

以及回传参数和被呼叫的能力,

functionA('参数') 为表达式,

因此能够将函式中 return 的结果赋予到变数 data 中,

所以 data 的值会是函式中 return 的内容,

接着我们来看函式陈述式和函式表达式的内容

函式陈述式和函式表达式

我们先来看函式陈述式的结构

function fnA() {
    console.log('函式陈述式', '具名函式');
    console.log(fnA);
};

fnA();

当我们显示 fnA 时,

会看见 f 的後方会显示函式名称 fnA

这种函式称为具名函式,

而函式陈述式一定要给名称,

因此函式陈述式都是具名函式

接着看函式表达式

const fnB = function() {
    console.log('函式表达式', '匿名函式');
    console.log(fnB);
};

fnB();

当我们显示 fnB 时,

会看见 f 的後方没有函式名称,

这类函式则称为匿名函式,

但函式表达式也能使用具名函式

const fnC = function fnD() {
    console.log('函式表达式', '具名函式')
    console.log(fnC);
    console.log(fnD);
};

fnC();

当我们显示 fnCfnD 时,

会发现虽然宣告的变数为 fnC,但显示的函式名称都是 fnD

那是因为我们在宣告函式时,就已经给它函式名称 fnD

但有一点要注意,

函式表达式中具名函式的函式名称只能在函式内呼叫,在函式外呼叫会出错

const fnC = function fnD() {};

console.log(fnD);


<<:  第5砍 - 挺身而出

>>:  Day21 Laravel - command & schedule

EP22 - [Ruby on Rails] 安装 Sinopac-FunBiz 套件进行刷卡

Youtube 频道:https://www.youtube.com/c/kaochenlong ...

[Day 2] 有份正职工作的情形下,我该如何安排学习

前言 从2020/11月开始决定要花过多时间在学习前端之後,就开始规划每日应该投入的时间,假日该如何...

Day 9:使用 Typora 发表你的第一篇 Hexo 文章

今天我们正式要使用 Markdown 撰写你的第一篇部落格文章啦! 用指令建立文章或草稿 .md 档...

[Day 30]30天挑战成功!同场加码Azure Machine Learning!

今天是最後一天啦!但学习的路还尚未中断!笔者今天想聊聊不一样的,看到标题应该可以猜到,我们今天要来聊...

Day 18 一切都不是理所当然的!

在我们看来一切都是理所当然的,任何时候都能表达自己的想法,每天过着平凡又充实的生活,享受甚至忘记黑暗...