标签:不能 返回 def 引擎 arguments 原始类型 函数的参数 EAP 表示
函数的概念
1)函数的基本概念和创建方式
创建:
function zxw(a){ console.log(a); }
function后面接函数的名字,圆括号是要传入函数的参数,函数体在大括号里。
var zxw = function(a){ console.log(a); }
这是用变量赋值的写法将匿名函数赋值给变量,如果在加上了函数名,那只有在这函数体内部有效,函数体外部是无效的。
调用和return语句:
要调用函数时,写上函数名后面在加圆括号就可以调用了
function add(a,b){ return a+b; } add(1,2)
上面函数圆括号内里的就是这个函数的参数,在调用add这个函数时将数值1和2带入进去。
函数体内部的return语句表示的是返回,当JavaScript遇到这个语句,就直接返回这个语句后面的值,就算后面还有语句也不会执行。return语句所带的那个表达式就是函数的返回值,如果没有return语句那这个函数就不会有任何输出,返回的是undefined。
函数可以自己调用自己,这个就叫递归。
2)函数名提升
JavaScript 引擎将函数名视同变量名,在用function命令声明函数时,整个函数会像变量声明一样,被提升到代码头部:
f(); function zxw(){ console.log(‘zxw‘); }
虽然先执行了f函数,但由于函数提升,函数f被提升到了代码头部,所以在被调用前就声明了。
只有用函数声明的方式才存在函数提升,如果用函数表达式的方式,JavaScript就会报错。
f1(); var f1 = function(){} //undefined
3)参数
传递方式:
JavaScript中数据类型一般分为2类:
这2种内存分配机制也导致传递参数的方式也不同
arguments对象:
说起参数,还要说到arguments对象,它可以读取函数体内部的所有参数
function f(d){ console.log(arguments); //函数参数的集合 console.log(arguments.length); //传递参数的个数 }
arguments对象的格式很想数组,但它不是数组,所以数组的方法不能用在arguments对象上
总结下,函数在JavaScript中作为第一等公民,它被看做一种值,凡是可以使用值的地方就可以使用函数。我们可以将函数赋值给对象或对象的属性,也可以当做参数传入其他函数,或者作为函数的结果返回。
标签:不能 返回 def 引擎 arguments 原始类型 函数的参数 EAP 表示
原文地址:https://www.cnblogs.com/ianyanyzx/p/9589394.html