函数就是一个方法或者一个功能体,函数就是把实现某个功能的代码放到一起封装
以后想要操作实现这个功能,只需要把函数执行即可 =>"封装"减少页面中的冗余
代码,提高代码重复使用率(低耦合高内聚)
// 创建函数
// ES5
function [函数名]([形参变量1],...){
// 函数体:基于JS完成需要实现的功能
return [处理后的结果];
}
[函数名]([实参1],...);
示例
//求两数之和,算完后再乘以10,然后在除以2
// =>sum是函数名,代表这个函数本身
// =>sum()是让函数执行,代表的是函数执行返回的结果
//=>n/m是形参,是变量,用来存储执行函数时传递的实参
// 创建函数的时候,设置了形参变量,但如果执行的时候并没有给传递对应的实参,
// 那么形参变量默认的值是undefined
function sum(n,m){
let result = n + m;
result *= 10;
result /= 2;
//console.log(result);
}
// console.log(sum); 输出代表函数本身
// 10/20这是传递给形参变量的值(实参)
sum(); //NAN
sum(10); //NAN
sum(10,20); //150
sum(10,20,30);//150
// 形参默认值处理;如果没有传递形参值,给予一个默认值
if(n === undefined){
n = 0;
}
if(typeof m === 'undefined'){ //更加常用
m = 0;
}
- 函数中的返回值
// 函数执行的时候,函数体内部创建的变量我们是无法获取和操作的,
// 如果想要获取内部信息,需要基于return返回值机制把信息返回。
//没有写return,函数默认返回值是undefined
function sum(){
let result = n + m;
// RETURN的一定是值:此处是把RESULT变量存储的值返回给外面
return result;
}
sum(10,20);
//console.log(result);//=>Uncaught ...: result is not defined
如果有一个n/m不传实参,那么不执行的方法:
if(n === undefined || m === undefined){
// 函数体中遇到return,后面代码则不再执行
return;
}
Javascript Function有两种类型:
1)函数声明(Function Declaration);
// 函数声明
function funDeclaration(type){
return type==="Declaration";
}
2)函数表达式(Function Expression)。
// 函数表达式
var funExpression = function(type){
return type==="Expression";
}
实际上,Javascript函数上的一个“陷阱”就体现在Javascript两种类型的函数定义上