一、函数的定义和调用【JavaScript基础快速入门教程(五)(函数的定义和调用、带参函数和匿名函数)】JavaScript中的函数用于封装一些语句完成特定的功能,函数也是JavaScript的函数核心内容,因为JavaScript偏向函数式编程,在实际开发中会被大量使用。函数的实质是对功能的封装,主要是细分功能,例如,处理用户登录我们可以设计一个login()函数,如果在login()函数中还有其它功能需求,例如密码加密我们又可以设计一个encrypt()函数,注意函数不能定义在循环体内,或者其它分支语句中。
函数的定义和调用语法如下:
/**
* 函数的定义:
* function 函数名(参数1, 参数2, ...){
*函数体语句;
* }
* 调用函数:
* 函数名();
*/
函数名是自定义的标识符,命名规则和其它变量一样,以下划线、字母或$符开头,下面是函数定义和调用的实例。
// 定义函数
function login(){
console.log("verify email...");
console.log("verify password...");
console.log("login...");
}
// 调用函数
login();
二、带参函数和返回值JavaScript的函数和数学中的函数意义一样,同样是为了尽量设计得符合所有业务情况的处理,尽量设计得足够抽象,这时候就需要使用参数,参数和数学中的字母代数一样抽象表示,如y=2x-9,x就是参数,x的取值范围是整个实数轴,同样,函数的参数也是有取值范围限制的,比如限定为数值类型或字符串类型,函数参数的名字我们可以自定义,命名规则同样和一般变量一样。
带参函数的参数称为形式参数,即是抽象的,在调用带参函数的时候需要给这个函数传入实际的参数,即实参。
另外当我们需要从函数获得一个结果值的时候,可以使用return语句返回相应的值,return语法为: return 值,若函数没有返回值,默认返回undefined。
下面设计一个函数计算任意以整数start开始,整数end结束的所有整数和:
/**
*
* @param {开始的整数} start
* @param {结束的整数} end
*/
function sum(start, end){
// 若开始的整数大于结束整数,则返回undefined
if(start > end)
return;
var count = start;
for (var i = 1;
i <
= (end - start);
i++) {
count = count + (start + i);
}
// 使用return返回语句
return count;
}var value = http://www.srcmini.com/sum(3, 8);
// value为sum函数的返回值
console.log(value);
// => 33
三、匿名函数匿名函数顾名思义就是没有名字的函数,匿名函数采用一个变量来接收,可以当做一个变量使用,这也就可以当做其它函数的参数了,这个变量是一个function函数类型的变量。
匿名函数的一个简单实例如下:
// 匿名函数定义
var fn = function (){
console.log("anonymous function");
}
// 匿名函数调用
fn();
// 查看匿名函数变量的类型
console.log(typeof(fn));
// 输出:function
下面的实例是使用匿名函数作为函数的参数使用的例子:
// 使用匿名函数作为函数参数
// 定义一个匿名函数,并赋值给callback这个函数类型的变量
var callback = function (message, code){
console.log("reveived message: " + message + " " + code);
}// 定义一个带参函数,参数的类型为函数类型
function request(callback){
console.log("request message");
callback("JSON", 200);
}//调用request函数,传callback作为实参给request函数
request(callback);
推荐阅读
- vue.js框架快速入门简明教程(四)(样式绑定和事件处理器)
- Linux中的tty命令和示例
- Python中的多态性用法指南
- Scala多态性介绍和用法指南
- Linux中的ps命令示例和指南
- CSS按钮样式介绍和代码示例
- 如何使用JavaScript将Blob转换为base64编码()
- Python中的numpy.floor_divide()详细介绍
- C++中具有用户定义大小的2D矢量vector