JavaScript 函数 | 一级函数

一级函数 (First Class Functions)

Everything you can do with other types you can do with functions.
你能对别的型别(比如字串、数值、布林、物件等)做的事情,都可以对函式做。

例如指派函数给一个变数,此外,函数还可以当作参数再传到另一个函数中。
事实上,JavaScript函数就是一种特殊的物件。

函数(Function)

简单介绍一下函数,函数就是把要程序码封装在一起,如此利於重复使用。

如何宣告?

function 函数名称(参数1,参数2,....){
你要函数做的事情
}
*如果函数要返回一个值,就用 return 关键字
*有的函数不用参数,看你的需求而定
例如这里有一个返回 "你好!" 的函数,函数名叫greet

function greet() {
    return "你好!";
}

如果要呼叫函数:

函数名称()

以上面为例:

greet(); 

Scpoe 范围

我们可以在函数内定义任何变数,但是只有在函数里面才可以存取
这叫做 local variable(局部变数),相对的就是 global variable(全域变数)

例如:这样外面存取不到 a函数 内的c

function a(){
		var c=12;
	}
	console.log(c);//Uncaught ReferenceError: c is not defined

函数就是物件

函式是一种特殊的物件,除了有所有物件的特色外,还有自己的属性。
既然函数是物件,那麽它就会有属性与方法。

例如,函数可以有一般物件有的属性:
纯值、物件、函数等

此外,函数本身的特殊属性有:
1.名称属性(不一定要有,有的函数是匿名)
2.code(程序)属性,你在函数里面写的程序也是该函数的属性之一,这个属性是可以呼叫的,用 ()呼叫,呼叫函数就会执行程序。
可以看这张图:(取自克服JS奇怪部分)
https://ithelp.ithome.com.tw/upload/images/20210923/20135414QuJvF06OQ7.png

所以要记得: 函数是物件!!

也因为可以对函数做很多事情,比如复制、移动、传值,所以函数使用弹性非常大。

EX: 因为函数是物件,所以我们可以用.来为函数新增属性

function hello(){
console.log('hello');
}

hello.lang='eng';
console.log(hello.lang);// eng

上面这个函数
*Name 属性为 hello
*code 属性为 console.log('hello');
而一但我们 呼叫函数hello()
执行环境就会被创造,并执行程序

再次提醒,JavaScript 函数是物件,它是一级函数!

参考:
Fooish JavaScript Function (函数)
MDN 函式


<<:  day[11] Hello Line - 第一个Line讯息

>>:  30-8 之 Presentation Layer - MVC ( Model-View-Controller )

[ Python] bat 开启 python 环境

D: cd pydata call C:\ProgramData\Anaconda3\Scripts...

[Day23] NLP会用到的模型(六)-transformer架构

一. 介绍 transformer就是像前述介绍的,他就是一个seq2seq model,将一个序列...

Day11 - Button(一)

今天来学最常用到也最实用的Button按钮元件 我们经常需要点击按钮来做某个或多个事件 这时就需要设...

Day1 理解 golang slice 用法及原理 I

我写什麽 这系列叫做後端菜鸡学习杂记,所以我也没打算特定写什麽,在熟悉了 go 语法之後,常常只使用...

mostly:functional 第二十九章:Monad 的法则

梅贾德斯不是照人类传统的时间来记戴,而是着眼在一个世纪发生的生活故事,一切同时存在於一瞬间。 --...