什么是函数?
函数是完成特定任务的语句块。当需要重复完成某种任务时,就应该把用到的语句组织成函数。这样,在javascript程序的任意位置都可以通过引用其名称来执行任务。程序员可以在程序中建立很多函数,这样有利于组织自己的程序结构识代码的维护,更容易,除此之外,JavaScript还提供了许多功能强大的内置函数,可以在程序的任意位置中使用这些函数。
创建函数
自定义函数及调用
自定义函数需要使用function关键字,语法如下
function 函数名([列表参数]){
程序语句
......
[return 返回值:]
}
定义函数需要注意
- 函数名区分大小写,且不能相同,更不能使用JavaScript的关键字。
- 在fuinction关键字之前不能指定返回值的数据类型。
- 函数定义中]是指可选的,也就是说,自定义的函数可以带参数,也可以不带参 数。如果有参数,参数可以是变量、常量或表达式。
- 自定义函数可以有返回值,也可以没有,如果省略了return语句,则函数返回undefined。
- 函数必须放在<script></script>标签之间。
- 函数的定义最好放在网页的<head></head>部分。
- 定义函数时并不执行组成该函数的代码,只有调用函数时才执行代码。
当然,还有创建函数的方法
匿名函数
这种方法又叫做匿名函数,先来看一下语法
变量名 = function() {
程序语句
}
也就是将函数赋给变量名,用法和变量名一样
但是有一点不同,就是匿名函数需要先声明创建之后才可以调用也就是说匿名函数要在调用函数的前面能被调用
函数怎么用?
比如我们定义一个有参函数,用于比较三个数中的最大值,并返回最大值
//创建函数并设置参数
function hs(a, b, c) {
//定义变量接收a,b中的最大值
var d = a < b ? b : b
//定义变量接收d,c中的最大值
var t = d < c ? c : d
//返回t的值
return t
}
//调用函数并向页面输出任意三个中最大数
document.write(hs(99, 10, 111))
以上面代码为例,函数的调用是定义之后用函数名+括号(包含参数)
全局变量和局部变量
变量的作用范围,变量可分为全局变量和局部变量。 全局变量是指在<script></script>标签中声明的变量,独立于所有函数之外,作用 范围是该变量声明后的所有语句,包括在其后定义的函数中的语句。 局部变量是在函数中声明的变量(函数的参数列表中的变量也是属于该函数的局部 变量),只有在该函数中且位于该变量声明之后的程序代码才可以使用这个变量。 局部变量一定是属于某个函数,故对其后的其他函数和脚本代码来说都是不可见的 (不能访问)。如果在其后的其他函数和脚本代码中声明了与这个局部变量同名的变 量,则这两个变量没有任何关系。
如果在函数中声明了与全局变量同名的局部变量,则在该函数中使用的同名变量是局 部变量而不是全局变量。这是程序中的同名覆盖原则,局部变量“屏蔽”了同名的全局变量。
例如:
var a = 1
function b() {
alert(a)
}
b()
讨论在函数外定义的变量在函数里是否可以使用
其实以上运行结果可以得到弹窗"1",所以在这里能看到函数是可以接收到变量a的
那么如果在函数里创建变量在函数外是否可以使用
function b() {
var a = 1
}
alert(a)
当然这个运行结果会报错,它会提示a is not defined,未找到该变量。
内置函数
parseInt()函数
将字符串按照指定的进制转换为一个整数,语法如下
parseInt(numString,[radix])
第一个参数numString为要进行转换的字符串,第二个参数radix是可选的,用于指定转换后的整数的进制。默认是十进制。如果numString不能转换为一个数字,该函数将返回NaN
例如
parseInt("abc") //NaN
parseInt("a1230") //NaN
parseInt("123") //123
parseInt("1234adc") //1234
parseInt("13.12") //13
parseFloat()函数
将一个字符串转换成对应的浮点数。语法如下
parseFloat(numString)
参数numString为要转换的字符串,如果sumString不能转换为一个数字,该函数将返回为NaN
parseFloat("123.45") //123.45
parseFloat("123.45ab") //123.45
parseFloat("ab") //NaN
parseFloat("ab123.45") //NaN
isNaN()函数
用于检测一个变量或一个字符串是否为NaN(不是数字)。如果是,则返回true;如果不是,则返回false
isNaN(parseInt("ab")) //true
isNaN("12") //false
eval()函数
将一个字串串作为一段JavaScript表达式执行,并返回执行的结果。语法如下
eval(express)
参数express使用字符串形式表示的JavaScript表达式,该函数将返回JavaScript解析器执行express的结果,例如
var a = eval("1+1")
alert(a)
就是将括号里的字符串当成JavaScript语句来执行
不要假装努力,结果不会陪你去演戏