JavaScript学习总结一:js常见问题
语法要点:Javascript语言区分大小写,为弱类型变量语言(类似VB)。变量可以不定义直接使用(不推荐)。
函数调用与引用:var one = excute();表示获取excute这个函数执行的结果(返回值)而var one = excute;表示引用excute这个函数,把excute这个函数的地址传给one这个变量。
Js覆盖规则:当出现多个同名函数时,以最后一个定义的为准,无论在哪调用该函数(即使在最后一个定义之前调用),都将调用最后一个!
Javascript中的函数参数机制:一个函数有多少个参数不是通过函数的定义判断的,而是通过访问函数时传递了多少个参数判断。比如function a(x,y),无论括号里写多少个参数都无效,要想传入参数要在访问时确定,a(1,2,3);这样就是传入了三个参数。因此function a(x,y)、function a()、function a(x)等写法是没有任何区别的,函数唯一的区别就是名字,不通过参数区别。细心的读者可能会发现,假如有一个function a(x,y),访问方法:a(1,2,3),问题来了:我们可以在function中使用x、y形参获得1、2两个实参值,但是第三个参数怎么使用?在js中,每一个function,都会有一个arguments数组,这个数组专门用来存放参数,在本例中,数组的情况是:arguments[0]=1、arguments[1]=2、arguments[2]=3。这样就不必通过形参访问参数了,直接访问arguments数组即可!
Js覆盖规则:当出现多个同名函数时,以最后一个定义的为准,无论在哪调用该函数(即使在最后一个定义之前调用),都将调用最后一个!因为js是解释执行的语言,在执行前要把整个代码段扫描,因此可以在函数定义之前使用函数。例如,以下代码输出为2
<script type="text/javascript"> function a() { alert("1"); } a(); function a() { alert("2"); } </script>