JS函数的理解和使用
什么是函数?
- 用来实现特定功能的, n条语句的封装体。
- 只有函数类型的数据是可以执行的, 其它的都不可以。
为什么要用函数?
- 提高复用性
- 便于阅读交流
函数也是对象
- instanceof Object===true;
- 函数有属性:prototype
- 函数有方法: call()/apply()
- 可以添加新的属性/方法
三种不同的函数
- 一般函数 :直接调用
- 构造函数 :通过new调用
- 对象:调用内部的属性/方法
函数的作用域
作用域是指变量存在的范围。
Javascript只有两种作用域:
一种是全局作用域,变量在整个程序中一直存在,所有地方都可以读取。
另一种是函数作用域,变量只在函数内部存在。
在函数外部声明的变量称为全局变量,它可以在函数内部读取。在函数内部定义的变量,外部无法读取,称为局部变量。函数内部定义的变量,会在该作用域内覆盖同名全局变量。
注意,对于var命令来说,局部变量只能在函数内部声明,在其他区块中声明,一律都是全局变量。
例:
if (true){
var x = 5;
}
console.log(x); // 5
//上面代码中,虽然变量x在条件判断区块之中声明,但仍然是一个全局变量,可以在区块之外读取。
函数的参数
函数运行时提供的外部数据叫参数,Javascript允许省略参数。
- 如果函数参数是数值、字符串、布尔值,那么传递方式是传值传递,在函数体内修改参数值,不会影响到函数外部。
- 如果函数参数是数组、对象、其他函数,那么传递方式是传址传递,在函数内部修改参数,将会影响到原始值。
函数的调用
调用函数时,要使用圆括号运算符。圆括号之中,可以加入函数的参数。
return:函数体内部的return语句,表示返回,直接返回后面的表达式的值,即使return语句后还有其他语句,也不会得到执行。但是return语句不是必需的,如果没有的话,该函数就不返回任何值,或者说返回undefined。