上次定义的函数不光使用起来方便,修改起来也方便,比如我在每次输出的时候都做一次 +1
:
const to_show_all_items = function(arr){for(const item of arr){console.log(item+1)}}const a = [1, 2, 3];const b = ['hello', 'world'];to_show_all_items(a);to_show_all_items(b);
那么对每一个数组的输出都发生了相应变化。
现在我们觉得它真的很方便了,但是还可以更好玩么?
前面只是让它做一个操作,操作完成,不需要给出什么反馈。有点你去做吧,做完不用和我汇报的意思。
但是有些事情,不是“你办事,我放心”就可以解决得了的。我给你一个数,你就把这个数加上 10,然后告诉我结果。这样的操作就必须有一个汇报了,因为我等着这个结果去做别的事情呢。
const add_ten = function(a){const result = a+10;return result;}
return
的意思是返回,返回什么呢?返回一个值,我们这里是 result
的值。这就是这个函数的返回值。我交给它一个任务,它做完后给我一个回馈,让我知道结果。是这么个意思。
可以这样调用:
const return_val = add_ten(223);console.log(return_val);
调用这个函数的时候就在期待着它的返回值,所以就准备了一个变量,告诉函数,你完成之后把结果放在这个变量里,我就可以用啦~
函数的基本概念就讲这么多,这些东西十分基础,甚至简陋,后面还有无数深层的东西我们没有去说。但是,目前这些东西差不多够我们解决日常的基础问题了,那就先用起来,用熟悉了,再去扩展,就不痛苦。
还有几个细节:
首先,虽然在 JS 里有些情况中不这样做也不报错,但是还是要求大家一定要先定义函数,再去使用它。
函数的参数可以有多个,它们在小括号里的顺序很重要,因为传入参数的时候凭顺序对应形参和实参。
而返回值只能有一个,可以没有,但不能有更多。
如果需要多个返回值,可以返回数组、对象。或者对作用域更广(在函数内外都起作用)的变量进行修改、赋值。
循环中,大括号的内容如果太长,也可以定义为一个函数,然后在循环中调用。这样循环部分的结构就变得很清晰易读。
其实无论数组,还是函数,它们都属于一种对象。
而数组的项目,或者对象的属性值,也可以是一个函数。(这个后面会用到,不懂也没关系)
现在理解了这些基础概念之后,我们就可以很容易理解一些常用方法了。为了方便,JS 把某些操作定义为了函数。既然定义好了,我们就直接使用就可以了,很方便:
比如 Number(a)
可以把变量 a
的数据类型转换为数字,类似的还有 String(a)
把变量 a
的数据类型转换为字符串。
typeof(a)
返回 a
的数据类型,这就很方便我们去观察数据,不过对于数组,它会告诉你这是个对象,以及许多类似的问题……
这样实用的内置函数还有好多,大家可以慢慢扩展,别着急哦,稳扎稳打的。
暂无评论内容