函数
function name(x) {
if (x >= 0) {
return x;
} else {
return -x;
}
}
在上面这个方法中:
- function指出这是一个函数定义;
- name是方法名;
- (x)是参数,多个参数以,分割;
- {…}是函数体;
函数也就是一个对象。随意,也可以这样搞:
var name = function (x) {
if (x >= 0) {
return x;
} else {
return -x;
}
};
看清楚,第二种方法声明,给变量赋值,屁股后面有个 ; 表示赋值语句完成。
- arguments 关键字
它只在函数内部起作用,指向的是函数调用者传入的所有参数,存的方式感觉就和数组没差,但人家可不是Array。
function foo(x) {
console.log('x = ' + x); // 10
for (var i=0; i<arguments.length; i++) {
console.log('arg ' + i + ' = ' + arguments[i]); // 10, 20, 30
}
}
foo(10, 20, 30);
arguments最常用的是判断传入参数的个数。例如:
// foo(a[, b], c)
// 接收2~3个参数,b是可选参数,如果只传2个参数,b默认为null:
function foo(a, b, c) {
if (arguments.length === 2) {
// 实际拿到的参数是a和b,c为undefined
c = b; // 把b赋给c
b = null; // b变为默认值
}
// ...
}
- return的一个坑
function foo() {
return { name: 'foo' };
}
foo(); // { name: 'foo' }
function foo() {
return
{ name: 'foo' };
}
foo(); // undefined
上面两段代码,其实 非常不一样,return后会自动给你添加; 得注意!!!