400-685-0732 电话咨询定制营销方案
关注专业seo外包公司
SEO创新会
文军营销
大数据驱动  让营销不走弯路
首页  >   工具使用  >  js函数 JS中创建函数的三种方式及区别

js函数 JS中创建函数的三种方式及区别

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()构造函数创建一个函数时并不遵循典型的作用域,它一直把它当作是顶级函数来执行。如果大家还想了解更多与之有关的信息,欢迎关注我们文军营销的官网。

推荐阅读

word空白页删不掉 删除空白页的五种方法 | 文军营销平时使用word写文档的时候,经常在编辑的过程当中有空白页的出现,这一页没有...js函数 JS中创建函数的三种方式及区别 java正则表达式语法 正则表达式基础知识 ...nodejs教程 node.js快速入门 | 文军营销简单的说node.js就是运行在服务端的javascript。node.js是一个基于chrome...js函数 JS中创建函数的三种方式及区别 java正则表达式语法 正则表达式基础知识 ...mysql图形化管理工具 常用的MySQL图形化管理工具介绍使用 | 文军...js面向对象编程 基于类的面向对象和基于原型的面向对象方式比较 js函数 JS中创建函数的三种方式及区别 java正则表达式语法 正则表达式基础知识 java与c语言的区别 ...激活office2010 office2010怎么激活 | 文军营销以上就是激活office2010该如何操作的所有内容,激活的方式非常的简单,但是在...js函数 JS中创建函数的三种方式及区别 java正则表达式语法 正则表达式基础...在Excel单元格中添加斜线 excel单元格添加斜线 | 文军营销在制作一些表格的时候,我们可能需要在Excel单元格中添加斜线,以对所列项目...js函数 JS中创建函数的三种方式及区别 java正则表达式语法 正则表达式基础...如何制定SEO绩效维度与评定方法 | 文军营销js函数 JS中创建函数的三种方式及区别 java正则表达式语法 正则表达式基础知识 ...当我们在写seo提案后半段的报价与绩效PPT中,如何可以让报价和绩效的模式不仅对...