JS函数、函数表达式
1、函数的定义
函数的作用:在出现大量程序相同的时候,就可以封装一个函数,让程序可以重复利用,提高效率
函数的定义:通俗的说,函数就是像是css的类名一样,在书写类里面的样式的时候,其实就相当于函数的定义,类名的多次调用,就是函数的调用;
/* 先定义再执行 */
function fn(){
alert('小明');
}
/* 函数的调用 函数名()
fn() 函数自执行
*/
fn();
2、匿名函数
匿名函数不能单独调用,单独调用没有任何意义
document.onclick = function(){
console.log('楠楠');
}
3、函数表达式
函数表达式:有运算符参与运算,也可以加括号执行
/*最重要的 函数自执行*/
(function(){
console.log('楠楠!');
})();
/*赋值运算*/
var a = function(){
console.log('哈哈哈!');
};
/*
下面的函数写法认识一下就可以
下面的函数写法都时把函数转换成表达式
*/
+function(){
console.log('楠楠');
}();
-function(){
console.log('楠楠');
}();
!function(){
console.log('楠楠');
}();
~function(){
console.log('楠楠');
}();
/* 比较奇怪 */
(fucntion(){
console.log('好久好久');
}());
4、函数的参数
函数里面是可以传变量的
形参:写在函数块里面的叫做形参(一定是变量);
fn() = fn(var a)
实参:实际的数值,用来传给形参,在JS里面实参什么类型都可以;
形参和实参是一 一对应的
function fn(a,b){
console.log(a+b);
}
fn(11,12);//23
不定参数 arguments(对象)----类数组(存放传进去的所有实参)
/* 计算所有传入的实参 */
function fn(){
var num = 0;
for(var i=0;i<arguments.length;i++){
num += arguments[i];
}
console.log(num);
}
fn(1,2,3);
fn(1,2,3,4);
fn(1,2,3,4,5);
函数的返回值:当函数这些完毕后,默认返回undefined;
rreturn 能改变函数的返回值
function fn(a,b){
return a+b;
}
5、阶乘
/* 阶乘 */
function fn(a) {
if(a<=1){
return 1;
}
return fn(a-1)*a;
}
/* 三目运算 */
function fn(a){
return a<=1? 1: fn(a-1)*a;
}
console.log(fn(5));//120
/* 用for循环来实现*/
var num = 1;
for( var i=1; i<=5; i++ ){
num *=i;
}
console.log(num);//120