说明:如果您有任何疑问或想咨询其他业务请拨打电话 400 685 0732
全网监测海量数据按需发布监测预警
实时把握舆情动态精准追溯信息源头
javascript函数的参数与大多数其他语言的函数的参数有所不同。函数不介意传递进来多少个参数,也不在乎传进来的参数是什么数据类型,甚至可以不传参数。javascript中的函数定义并未指定函数形参的类型,函数调用也未对传入的实参值做任何类型检查。实际上,javascript函数调用甚至不检查传入形参的个数
js函数——JS中创建函数的三种方式及区别
1.函数声明
functionsum1(n1,n2){
returnn1+n2;
};
2.函数表达式,又叫函数字面量
varsum2=function(n1,n2){
returnn1+n2;
};
两者的区别:解析器会先读取函数声明,并使其在执行任何代码之前可以访问;而函数表达式则必须等到解析器执行到它所在的代码行才会真正被解释执行。
自执行函数严格来说也叫函数表达式,它主要用于创建一个新的作用域,在此作用域内声明的变量,不会和其它作用域内的变量冲突或混淆,大多是以匿名函数方式存在,且立即自动执行。
3.函数构造法,参数必须加引号
varsum3=newFunction(‘n1′,’n2′,’returnn1+n2′);
console.log(sum3(2,3));//5
从技术角度讲,这是一个函数表达式。一般不推荐用这种方法定义函数,因为这种语法会导致解析两次代码(第一次是解析常规ECMAScript代码,第二次是解析传入构造函数中的字符串),从而影响性能。
varname=’haoxl’;
functionfun(){
varname=’lili’;
returnnewFunction(‘returnname’);//不能获取局部变量
}
console.log(fun()());//haoxl
js如何创建带返回值的函数
varfuc=function(){
return1;
}
上面是创建了一个非常简单的函数fuc,它的返回值是1,当你调用这个函数的时候,例如
alert(fuc());
就会弹出内容为1的对话框
返回值可以理解为函数执行后得到的结果,好象求解数学公式的时候
x=a+b+c;
a+b+c=1;
这时候调用x就相当得到1的值,a+b+c是执行的过程.
调用functionA(fp1,fp2,fp3);下面的fpp1,fpp2,fpp3是实参(函数和面向对象的思想此处就不讲了,相信都学过C语言,了解过面向对象的思想)
varobj=functionA(fpp1,fpp2,fpp3);//调用函数functionA,同时传参
varfun1=obj.a1;//通过obj对象获取对象字段a的值
varfun2=obj.b1;//取到b的值
varfun3=obj.c1;//取到c的值
Function()构造函数每次执行时都会解析函数主体,并创建一个新的函数对象,所以当在一个循环或频繁执行的函数中调用Function()构造函数效率是非常低的。而函数字面量却不是每次遇到都会重新编译的,用Function()构造函数创建一个函数时并不遵循典型的作用域,它一直把它当作是顶级函数来执行。如果大家还想了解更多与之有关的信息,欢迎关注我们文军营销的官网。
推荐阅读
说明:如果您有任何疑问或想咨询其他业务请拨打电话 400 685 0732