基本知识
函数对于我们来说,不算陌生的东西。中学就已经有了函数的概念,比如:
y = f(x)
输入一个数 x,能够得到与之对应的一个数 y。也就是说,f(x) 的有一个返回值,这是函数在数学上的定义。但是在 JavaSciprt 中,我们把函数看成是发生器,在内部可以进行一系列运算,可以有返回值,也可以没有返回值。
函数是用关键字 function 来声明,后面跟一组参数以及函数体,基本的语法如下所示:
function 函数名字 (参数 1,参数 2,参数 3){ 函数体}
如果一个函数有返回值,我们可以看到关键字 return 。在 return 后面发生的一切都没有用了,执行完 return 函数立即退出。一个返回 Hello World 的示例:
function sayHello(arg1, arg2){ return arg1 + arg2 alert("猫咪")}sayHello("Hello", "World"); // 会返回 Hello World ,但是 "猫咪" 不会出现。
不用返回值,函数也可以运行的:
function sayHello(arg1, arg2){ alert("我就不返回值")}sayHello("Hello", "World"); // 会弹提示框,而不是参数
函数要么有返回值,要么没有返回值。像 return 后面不跟东西,是不推荐这么干的,这样会导致调试困难。
关于参数
参数有很多有趣的地方,JavaScript 在定义函数的时候,标识符可以没有,可以有很多个;在使用函数的时候,传入的参数可以没有,可以有很多个。
我们应该了解的:
- 参数不能命名成 eval 或者 arguments;
- 参数在函数内部是以数组的形式存在,我们可以访问 argument 对象得到;
- 所有参数都是值,不可能通过引用传递参数;
- JavaScript 函数不能像 Java 那样实现重载(两个名字相同的函数却是两个不同的函数),后者会覆盖前者。这是因为参数是一个数组,没有函数签名的说法。可以判断参数的类型或者大小,return 不同的值,实现不完美的重载;
- 一般我们称 JavaScript 的参数为形参,是因为参数的名字和传入的值之间不受名称的影响,有的语言在调用函数时,传入的参数名称必须和定义的标识符一致才可以调用。这是因为解析器不会校验参数名,只关心参数的个数和相对位置。
欢迎大家关注微信公众号:** 可视化技术( visteacher )**
不仅有前端和可视化,还有算法、源码分析、书籍相送
个人网站:
各个分享平台的 KurryLuo 都是在下。
用心学习,认真生活,努力工作!