1、函数构成:
(1)function子句。
(2)函数名称。
(3)函数所需的参数。
(4)函数所要执行的代码块,称之为函数体。
(5)return子句。函数通常都会有返回值,如果某个函数没有显式的返回值,就默认其返回值为undefined。并且一个函数只能有 一 个返回值,如果需要同时返回多个值,可以将其放进一个数组里,以数组元素的形式返回。
2、函数的调用:
只需在函数的后面加一对用以传递参数的括号即可。
3、预定义函数:
parseInt() :将其收到的任何输入值(通常是字符串)转换为整数类型输出,如果转换失败就返回NaN。
eg: parseInt('123') >>> 123 ; parseInt('abc123') >>> 123 ; parseInt('1abc23') >>> 1 ; parseInt('123abc') >>> 123
该函数还有个可选的第二参数:radix,负责设定函数所期望的数据类型,十进制、十六进制、二进制、八进制等。 eg: parseInt('FF' , 10) >>> NaN ; parseInt('FF' , 16) >>> 255
如果调用parseInt时没有设置radix,就默认为十进制,但以下两种情况除外:如果首参数字符串以0x开头,第二参数
默认为十六进制;首参数以0开头,第二参数默认为八进制。
parseFloat() : 功能与parseInt()基本相同,只不过支持将输入值转换为十进制数,因此该函数只有一个参数。
parseFloat()还可以接受指数类型的数据。eg:
parseFloat('123e2') >>> 12300
isNaN() : 判断某个输入值是否是一个可以参与算术运算的数字。因此,该函数也可以用来检测parseInt() 与 parseFloat()函数的 调用成功与否。
isFinite() : 可以用来检查输入是否是一个既非infinity也非NaN的数字。
eval() : 将其输入的字符串当做javascript代码来执行(尽量避免使用eval()函数)
alert() : 在alert()的执行窗口关闭之前,当前所有的代码都会暂停执行。因此对于一个忙碌的AJAX应用程序来说,alert()通常不是
一个好的选择。
4、变量的作用域:
(1)在javascript中,我们不能为变量定义特定的块作用域,但可以定义其所属的函数域。
(2)全局变量指的是声明在所有函数之外的变量,与之对应的局部变量指的是在某个函数中定义的变量。
(3)如果我们声明一个变量时没有使用var语句,该变量就会被默认为全局变量。
(4)在函数被调用之前,函数中的变量是不存在的。
(5)函数域始终优于全局域。
5、函数也是数据:
函数是一种数据类型。下面两种函数定义在本质上是相同的:
(1)function f() { return 1; }
(2)var f = function() { return 1; }
第二种定义方式称为函数标识记法。