8.JavaScript中的函数
1.概述
函数就是一段可以反复调用的代码块。函数还可以接受输入的参数,不同的参数会返回不同的值。
1.1函数的声明
1.1.1function命令
function print(s) {
console.log(s);
}
print(a);
1.1.2函数表达式
var print=function (s) {
console.log(s);
};
print(w);
1.1.3Function构造函数
var add=Function(
'x',
'y',
'return x+y'
);
//等同于
function add(x,y) {
return x+y;
}
你可以给构造函数传递任意参数,只有最后一个参数会被当做函数体,如果只穿一个参数,该参数就是函数体。
注:这种函数声明的方式十分的不直观,所以不推荐使用。
1.2函数的重复声明
如果同一个函数被多次声明,后面的声明就会覆盖前面的声明。
1.3圆括号运算符,return语句和递归
调用函数的时候,要是用圆括号运算符,圆括号之中的,可以加入函数的参数。
function add(x,y){
return x+y;
}
add(1,5);
函数可以调用自身,这就是递给,如下:
function fib(num) {
if (num==0) return 0;
if (num==1) return 1;
return fib(num-2)+fib(num-1);
}
fib(6) //8
1.4函数的属相和方法
1.4.1函数的name就是紧跟在function函数关键字之后的。
1.4.2函数的length属性返回函数预期传入的参数的个数,级定义之中的函数。
1.4.3函数的toString()方法,返回函数方法的源码和内部的注释。
function f() {
a();
b();
c();
}
f.toString()
// function f() {
// a();
// b();
// c();
// }
function f() {/*
这是一个
多行注释
*/}
f.toString()
// "function f(){/*
// 这是一个
// 多行注释
// */}"
2.函数的作用域
在JavaScript中,一种是全局作用域,变量在整个程序中一直存在,所有的地方都可以读取,一种是局部变量域,变量只可在函数的内部可以调用。
3.函数的默认传值
function f(a){
a = a || 1;
return a;
}
f('') // 1
f(0) // 1
4.函数的闭包
闭包是JavaScript语言的一个难点,也是他的特点,很多高级应用都需要考闭包实现。
var n = 999;
function f1() {
console.log(n);
}
f1() // 999
-------------------------------------------
function f1() {
var n = 999;
}
console.log(n)
-------------------------------------------
function f1() {
var n = 999;
function f2() {
console.log(n); // 999
}
}
-------------------------------------------
function f1() {
var n = 999;
function f2() {
console.log(n);
}
return f2;
}
var result = f1();
result(); // 999
-------------------------------------------
function createIncrementor(start) {
return function () {
return start++;
};
}
var inc = createIncrementor(5);
inc() // 5
inc() // 6
inc() // 7
张磊,技术菜鸟一枚,在web开发中一直苦苦挣扎,追求上岸!
联系QQ:1908002007
有技术问题可以随时联系,闲聊也是可以的!欢迎打扰!