博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS基础——函数的创建和使用
阅读量:6547 次
发布时间:2019-06-24

本文共 1739 字,大约阅读时间需要 5 分钟。

                在JS中函数在使用时实质上和我们平时学习的编程语言中的函数类似,它相同也具有函数名,參数,返回值,函数体等这些寻常函数所具有的内容。可是作为一种脚本语言,它确实也有自己不一样的地方。

 一、创建    

function box(){   //利用functionkeyword进行声明+函数名+(可加入參数)+{详细运行内容,可包含返回值}    return 'hello!';}

在这里,我们须要知道的是,box后面的()具有运行该函数的功能,同一时候可用来进行传參

假设我们在JS中直接调用alert(box),那么结果会显演示样例如以下图:由于没有加(),所以它没有运行。仅仅有在加了()后,才会正常显示'hello!' (这里匿名函数中会用到)

二、函数传參

      JS函数中用到一个arguments对象,能够实现动态传參,使得函数在传參时,并不介意有多少參数!

     1、arguments对象简单使用       

function box(){  //这里并没有传递參数	return arguments[0]+arguments[1]+arguments[2];	//这里代表第几个參数}alert(box('大家','国庆节','快乐!'));
能够看出来,arguments对象相当于一个对象数组,它将函数中传进来的參数放在了一个数组中,按顺序进行调用。

假设调用它的长度,会发现:长度为3,即參数的个数。

function box(){	return arguments.length;}
可是出现了一个问题,这里并没有实现动态传參啊,仅仅是參数一一相应而已,没错,事实上,
arguments对象仅仅能识别它自己事先定义好的个数的參数,假设外界传进来的參数不足,那么自己主动以undefined取代,假设传进来參数超出本身所定义的个数,那么,他会将多余的自己主动抹去,不会显示!
       那么怎样才干实现动态传參呢?让上面的函数能够传进而且识别全部我想传进的參数,比方在实现加法时,并不知道用户相加的数字的个数有多少的时候,该怎么解决呢?这里用到了一个简单循环来实现。

2、利用arguments对象实现动态传參:

function box() {	        var sum = 0;	        if (arguments.length == 0) return sum;	        for(var i=0;i
这样,我们假设调用函数alert(box(3,4,5,6,7,8,9)),不管加多少都能够得到想要的答案了。在这里须要注意的是,假设存在string格式的那么数字也会被当成字符串来处理,这时候‘+’会被当成&连字符来处理。

三、匿名函数

      JS中函数还支持无名英雄,在声明函数时,没有函数名称的函数称为匿名函数(跟匿名信一个道理)。

function (){	return 'hello!';}
但是没有函数名的函数怎样来调用呢?

匿名函数的运行方法:

 1、通过赋给变量进行调用

var box=function(){		return 'lee';	}alert(box());

2、自我运行

在创建时,提到了()代表运行,在匿名函数中也是一样。

(function(){  		alert( 'lee');	})()
//语法:(匿名函数)()第一个圆括号放匿名函数,第二个圆括号运行
这里的()使得页面在载入时,就能够直接运行JS中的匿名函数。不再须要赋值。

3、匿名函数进行传參

    这里也是用到了()这个小知识,第二个()代表运行,同一时候他还能够进行传參,所以,我们还能够为匿名函数进行传參。

比如:

   

(function(age){		alert(age);         }(100))
事实上,这里跟我们平时的函数原理是一样的。能够把前面整个匿名函数当成一个函数名,后面小括号进行传參和运行。这里的100能够用其它的表达式来取代,如页面中获取了某些表达式的值等。

     以上是关于JS学习中函数的一些基础知识,须要把握住原有知识和如今所学内容之间的同样点和不同点,认真总结和重复理解,才干终于得以应用。关于匿名函数的使用还有非常多的应用,将在兴许继续总结!

你可能感兴趣的文章
android app 退出时提示确认
查看>>
win10 配置
查看>>
java 编译100个范例
查看>>
Session Cookie ServletContext
查看>>
单点登录SSO
查看>>
遇见有的软件开启后画面模糊怎么解决
查看>>
好系统重装助手教你怎么识别固态硬盘还是机械硬盘
查看>>
170. js中获取随机数 (记录一下)
查看>>
深入浅出爬虫之道: Python、Golang与GraphQuery的对比
查看>>
DHCP配置
查看>>
MySQL性能测试(二)——Ubuntu 14.4.02, MySQL 5.6.25, sysbench 4.8
查看>>
我的友情链接
查看>>
网络安全十大注意
查看>>
cisco虚拟局域网VLAN路由----待补充
查看>>
join命令实现文件内容拼接
查看>>
-bash:wget command not found的解决方法
查看>>
yara规则
查看>>
我的个人简历
查看>>
我的友情链接
查看>>
我的友情链接
查看>>