js函数
1、如何定义和使用函数、
2、如何向函数传递参数
3、了解我们可以“免费”调用哪些预定义函数
4、了解javascript中的变量作用域
5、理解“函数也是数据”的概念,并将其视为一种特殊的数据类型
一、一个函数只能有一个返回值,如果我们需要同时返回多个值,可以考虑将其放进一个数组里。以数组元素的形式返回。
二、定义函数时设定了参数,如果设定了,在调用时又忘了传递相关的参数值,Javascript引擎就会自动将其设定为Undefined。
sum(1),在这里试图将1与undefined相加 返回 NaN
javascript对传递进来的参数来者不拒,即便传递的参数过多,多余的那部分也只会被默默地忽略掉。
而且,我们实际上还可以创建一些在参数数量方面更为灵活的函数。这得益于每个函数内部都有一个内建的arguments数组,
它能返回函数所接收的所有参数。
function args(){return arguments;} >>>args(); []
args(1,2,3,4,true,'ninja'); [1,2,3,4,true,'ninja']
通过arguments数组,我们可以进一步完善sum()函数的功能,使之能对任意数量的参数执行求和运算。
function sumOnSteroids(){
var i,res = 0;
var number_of_params = arguments.length;
for(i=0;i<number_of_params;i++){
res += arguments[i];
}
return res;
}
sumOnSteroids(1,1,1)
3
sumOnSteroids(1,2,3,4)
10
sumOnSteroids(1,2,3,4,4,3,2,1)
20
sumOnSteroids(5)
5
sumOnSteroids();
0
其中表达式arguments.length返回的是函数被调用时所接收的参数数量。arguments实际上不是一个数组,是一个类似数组的对象。
三、预定义函数
Javascript引擎中有一组可供随时调用的内建函数,下面,让我们来了解一下这些函数,在这一过程中,我们会通过一系列具体的函数
来实践,来帮助您掌握这些函数的参数和返回值,以便最终实现熟练应用,这些内建函数包括
parseInt()
:会试图将其收到的任何输入值(通常是字符串)转换成整数类型输出,
如果失败就返回NaN
parseFloat()
isNaN()
:NaN === NaN返回的是false,但是isNaN(NaN)返回的结果是true
isFinite()
:检查输入是否是一个既非infinity也非NaN的数字。
URL的编码与反编码
在URL中,有一些字符是具有特殊含义的,如果我们想“转义”这些字符,就可以去调用函数encodeURL()或encodeURLComponent()
前者会返回一个可用的URL,而后者则会认为我们所传递的仅仅是Url的一部分。
encodeURL()
decodeURL()
encodeURLComponent()
decodeURLComponent()
eval()
黑盒函数
一般来说,当我们调用一个函数时,程序是不需要知道该函数内部的工作细节的,我们可以将其看做一个黑盒子,您只需要给它一些参数(作为输入参数)
就能获取它输出的返回结果。这种思维使用于任何函数,也包括由任何个人或集体所创建的函数。