JS笔记(七)深入认识函数

深入认识函数

把函数看一个模具,我们要生产内容的时候,在里面生成内容。

//正常的写法: 
function fn(){
	 var a = 1; 
	 var b = 2; 
	 var c = 3;
	  console.log( a + b + c ); 
 }
 fn(); 
  我们在对变量进行相加的时候,正常要先声明多个值,然后对变量进行赋值.最后对函数进行运算;

但是如果我们想多次就需要我们封装函数,只要传入对应的参数就可以运算了:

两个括号里面function fn( a(形参) , b(形参) , c(形参) ) 
					fn(1(实参) , 2(实参) , 3(实参))
			//形参
function fn( a , b , c ){
 //形参:根据我们不同的指令,输出不同的内容。 
	 console.log( a );//1
	 console.log( b );//2
	 console.log( c ); 	//3
	 return a + b + c ;
	 	 // 1 + 2 + 3  =  6	  
 }
  fn( 1 , 2 , 3 );
   //实参:实际存在的参数;//每次都传入不同的值;
   // fn( 4 , 5 , 6 ); fn( 7 , 1 , 9 ); 
   //特点:可以比较随意,只要符合变量的命名规则即可;

实参与形参:

实参:函数自执行时,括号里面的内容;

形参:函数定义/声明,原括号里面的内容。

argument不定参:
  • 会根据每个参数执行意义不同; 一一地对应上参数。
  • argument:ES6就被废除了
//如果值多值少的情况?
function fn( a , b , c ){//参数:根据我们不同的指令,输出不同的内容
	console.log( a ); 
	console.log( b ); 
	console.log( c );
}
fn( 1 , 2 , 3 ); // 1 2 3 
fn( 2 , 4 , 6 , 8 );//2 4 6 
fn( 3 , 1 ); // 3 1 undefined 
 //如果没有形参来接收的话,输出的值为undefined; 形参个数比实参少那么最后的实参是没有作用的

function fn(){ 
	console.log( arguments ); 
	/* 不定参(argument),是一个结构看起来非常类似数组的对象; 
	类数组对象都有一些跟数组相似的特性; 
	1.取值用[下标]:下标从0开始; 
	2.都拥有length属性; */
} 
fn( 2 , 4 , 6 , 8 );



function fn(){
console.log( arguments[0], arguments[1]); // 1 3
//取值 console.log( arguments.length ); 
}
fn(1,3,5,7,9)


function fn(){
//参数:根据我们不同的指令,输出不同的内容。 
//console.log( arguments.length ); 
	var num = 0; 
	for( var i = 0;i< arguments.length ;i++ ){ 
		num +=arguments[i]; 
	} 
	console.log( num ); 
}
fn( 1 , 2 , 3 ); //   6      1 + 2 + 3 
fn( 2 , 4 , 6 , 8 ); //20    2 + 4 + 6 + 8
fn( 3 , 1 ); // 4    3 + 1
//argument( 不定参 ): 参数是不确定的。 //意义:每个根据实参转入的个数不同,一一地对应上;

return 返回值

接收值为undefined,用来设定函数的返回值;

function fn( ){//参数:根据我们不同的指令,输出不同的内容。
	//console.log( arguments.length );
	var num = 0;
	for( var i = 0;i< arguments.length ;i++ ){
		num +=arguments[i];
	}
	console.log( num );
	//return num; //把值给return出来。 如果没有return值 会默认返回一个underfined 但是不影响函数
}
var a = fn( 2 , 4 , 6 , 8 );
console.log( a );
/*
注意:
1.一个函数只能有一个return的返回值;
2.return里面的内容可以随意;
3.return 的内容不能换行,因为JS有一种自动添加换行的基制,换行之后会在后面会自动添加分号;
return 2,num,123,'sunday';
var a = fn();
console.log( a );
4.逗号运算符只会返回最后一条数据;所以不管逗号前面写了多少个值,都会执行。
5.只不过只有最后一个能被返回出来,前面的内容通通不会被返回出来。
*/

函数表达式种类

一共有7种函数表达式的写法;

//1.
var a = function(){ console.log(1) };
//2.
(function(){ console.log('2');})()
 //3.
(function(){console.log( '3' );}())
//4.
+function(){console.log('4');}()
//5.
-function(){console.log('5');}()
//6.
~function(){ console.log('6');}()
//7.
!function(){console.log( '7' )}()

函数表达式的区别

//就拿第一个与其它的区别:
var a = function(){ console.log(1) };
/*
1.与其它类型的区别:可以不立即执行;其它的函数必须立即调用,不然是没有意义。
2.意义:如果函数里面需要立即执行的时候就可以使用这种样式;
3.一打开就自行加载,一般用这种 (fn)();
4.都会生成一个立即执行的匿名函数,作用:产生一个作用域;
*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值