javascript函数的认识

来源:互联网 发布:聚宝盆是什么软件 编辑:程序博客网 时间:2024/05/19 07:45

那么关于我们的函数,他的格式:
这里写图片描述
function 代表的是定义一个函数,a是函数的变量名,括号内,num,str,flag等都是形参,就是在调用这个函数时需要传递参数的形式,大括号内就是这个这个函数执行的代码段。
这里再次强调一下,函数时一个数据类型,他跟var 定义一样。都可以被当做参数传递。
关于函数的变量名,以字符,_ 和 $开头,尽量使用语义化的英文命名。并且不能定义被javascript作为关键字的变量名,比如var , false , function 等这种,都不能被当做变量名来使用。
我们来做一个简单的验证用户名的例子:
首先,我们定义一个input输入框,并定义一个用来触发函数的按钮:
这里写图片描述
type=”button” 的input框中有一个 onclick ,这个onclick 代表的是当用户点击这个按钮时触发的事件,在这里,当用户点击button按钮,会触发一个变量名为valid的函数。所以,我们在javascript定义这个变量名为valid的函数:
这里写图片描述
首先,在这个函数中,我们获取到input type=”text”框中的值,注意,这里是一种JQ的写法。如果是JS的写法,那么最简单的方式就是我们需要定义一个id,然后在函数中写入document.getElemenyById(“username”).value 来获取到username的值。
获取到username的值后,我们对该值进行判断,如果该值为空,那么提示用户,请输入用户名,然后直接返回出这个函数,不继续执行下面的代码了。如果不为空,那么我们就打印这个username。最后效果如下:
这里写图片描述
这里的return我解释一下,return不是一定要写的,只有你觉得你有需要的时候才去return,return 可以返回数据,也可以单纯的跳出函数。如果你觉得你需要返回什么样的数据,你就return什么样的数据回去。如果刚才我需要返回用户所输入的用户名,我就可以return username 这样来写。
function的写法不难,但是有很多细节点需要我们同时去关注,就比如说作用域的问题,注意,在每一个浏览器里面都提供了一个js引擎。引擎里面就负责我们的编译和运行,还有一个作用域。
在作用域中,就有一个全局变量和局部变量的概念。概念很简单,局部变量就是定义在方法中的变量,而全局变量就是定义在整个作用域中的一个变量,是可以被所有函数调用到的一个变量,举个例子:
这里写图片描述
在这里,我们定义了1个全局变量a ,和局部变量b 。
然后,我们在函数中打印a,b的值:得到结果如下:
这里写图片描述
我们发现,a,b的值都能打印出来,那么就说明,在运行这一行代码的时候,js引擎找到了a,b的值。接下来,我们在函数外打印一下a和b的值:
这里写图片描述
结果我们会发现,浏览器报错了:
这里写图片描述
这行报错的意思是b这个变量找不到。
那是因为,这个b的变量是被定义在函数内部的,只能在函数内部使用。当我们在函数外部调用时,是无法调用到b的,这就好像b被包上了一层保护层。外界是无法直接访问到内部的数据的,这样就对变量和变量值起到了一个很好的保护作用,防止与外界的变量进行冲突。这也就是我们以后要讲到的闭包。

原创粉丝点击