function的英文是[功能],[数] 函数;职责;盛大的集会的意思
在js里,就是函数的意思。在Java里叫作方法。es6
function fun(参数){ //函数体 //return无关紧要,根据实际要求加或不加 }
//函数名() fun();
ps:在js里,咱们的方法能够先调用后声明,也就是调用寒素的代码能够写在定义函数的前面。数组
实参:简单理解就是实际的参数,在调用函数的时候传的
形参:简单理解就是在定义函数时,用来接收调用时传的值函数
var n1=123 , n2=456 //调用函数 fun(n1 , n2) //定义函数 function fun( a , b){ a += 100 b += 100 console.log(a , b) } console.log(n1 , n2) //运行结果:223 , 556 //123 , 456
ps:咱们能够看出,实参和形参并非同一个变量this
先看一段代码:es5
function fun(a , b , c){ console.log(a*10 , b+10 , c-10) } //调用 fun(1,2,3)//输出结果10,12,-7 //这里是没毛病的,正常输出 //可是下面这个调用呢??? fun(20,2) fun() fun(12,32,14,5)
ps:上面的写法,都不会报错...若是不信能够本身试试。code
首先,在js里,并无规定函数在定义的时候,必定要有返回值或者返回值类型这一说法,很活跃的,你想返回什么结果均可以
其次,若是要返回结果或者结束函数体,就要用到return关键字对象
在es5里,arguments是一个对象,用来接收全部的参数,用法和数组一致;不过目前已被废弃,有更好的代替它
es6:(推荐使用)递归
function fun( n1, n2, ...args ){ //args只能接收n2后面的数 //用...接收的就是一个数组,能够遍历 }
ps:...后面不必定要写args,能够本身随便命名,符合字符串规范就行。通常用args表示字符串
先看代码:it
var num = 100 var res = fun(1) //定义函数 function fun(n){ console.log( num + n ) } //输出为101
ps:上面的代码运行结果没问题,可是,耦合度很高,由于在函数体内,用全局变量运算,这就很忌讳,若是项目要移植,这些用到的变量就会拖泥带水的,耦合度高。这在之后的工做中这么干容易被炒鱿鱼...
注意:若是要使用,传参数就行了,千万别使用全局变量
var f = function fun(){ console.log("my name is rainbow") } console.log(f)
ps:咱们把一个函数体,赋值给了一个变量,那么这个变量打印出来会怎么样呢?
结果:并不会报错,而是直接打印出了整个函数体的内容。咱们能够这么想,调用函数的时候,咱们写的是fun(),也就是 函数名() 就变成了调用了。其实,js里面还真是这么干的,函数名加括号就是调用了一次函数。
在这里,你们和我想一个问题,这个方法体赋值给了变量,那这个变量是什么类型呢???
简单理解就是,你要使用一个函数,可是这个函数没有名字,这要怎么使用呢。
很简单,上面不是说了吗?
var a = 10; var b = 20;**************** var f = function(){ console.log(n1+n2) }; f(a,b)//输出结果30
(function(){ console.log('this is rainbow !') })(); 例子 var a = 10; var b = 20; (function( n1 , n2 ) { console.log( n2 + n1) })(a ,b); //输出结果为30
ps: