JS 函数

function welcome(data) {
	var str = "欢迎" 
	return str + data;
}

welcome("张三"); //调用函数,返回:欢迎张三
  • function 是关键词。
  • welcome 是函数的名称。
  • data 是参数,多个参数以,分隔。
  • { ... } 之间的代码是函数体。
  • return 返回。

函数体内部的语句在执行时,一旦执行到 return,函数就执行完毕,并将结果返回。
如果没有return语句,函数执行完毕后也会返回结果,结果为undefined。

JS - 匿名函数

/*
* 返回最大值
*/
var getMax = function (val1,val2) {
	var num;
	if(val1 > val2){ //if 判断语句
		num = val1;
	}else{
		num = val2;
	}
	return num;
};

var max = getMax(10,2); //调用函数,返回:10,并赋值给 max

function (data) { ... }是一个匿名函数,它没有函数名。
这个匿名函数赋值给了变量 getMax,通过变量 getMax 就可以调用该函数,还能将返回值再次赋值给 max。

JS - 检查函数参数

为保证程序顺利运行,需要对参数进行检查。

方式一

var getMax = function (val1,val2) {
	var num;
	if (typeof val1 !== 'number' || typeof val2 !== 'number') { 
			console.error('getMax(),错误:参数不是 Number 类型') ;
	}
	
	if(val1 > val2){ //if 判断语句
		num = val1;
	}else{
		num = val2;
	}
	return num;
};

getMax("10",2)

|| 是 或 条件语句。表示 val1 不是数字类型 或 val2 不是数字类型

运行结果:

函数1.jpg

图1

方式二

var getMax = function (val1,val2) {
	var num;
	if (typeof val1 !== 'number' || typeof val2 !== 'number') { 
			console.log("getMax(),错误:参数不是 Number 类型");
			return;
	}
	
	if(val1 > val2){ //if 判断语句
		num = val1;
	}else{
		num = val2;
	}
	return num;
};

getMax("10",2) 

函数2.jpg

图2

JS - 函数提升

和变量提升一个意思,函数也会提升到函数作用域的顶部,但是匿名函数就不会。

abc();     // 4
getMax();  //报错 
function abc(){
	var a = 1,
			b = 3;
	console.log(a+b);
}
var getMax = function(){
	// ....
}