函数定义声明
第一种声明函数
function f(x) { // function 指出这是一个函数定义; f 代表函数的名称;
if(x>0){ // (x) 代表函数的参数,可以多个参数,用 , 隔开;
return x; // {......} 代表的是函数体,可以包含若干语句,甚至是空的
}else {
return -x;
}
}
第二种声明函数
var sum = function (x) {
if ((x>=0)) {
return x;
}else {
return -x;
}
};
调用函数
sum(10,'小明','小华',true,null,8);
sum();
在函数中只有一个参数时 ,调用函数是有多个参数,多余的参数不起作用
避免 参数为undefined,可以对参数进行检查
function f1(x) {
if(typeof x !=='number'){
throw '输入的类型不输入number';
}
if(x >=0) {
return x;
}else{
return -x;
}
}
f1(99);
arguments - js中的一个关键字,只在函数内部起作用,永远指向函数内部调用者船
传入的所有参数,和Array很像,但是又不是Array;
function a(x) {
console.log('x = '+ x);
for (var i = 0; i<arguments.length;i++){
console.log('arguments' + i + '=' + arguments[i]);
}
}
console.log(a(10,20,30,'小华','小明'));
function a2(a,b,c) {
if (arguments.length === 2){
// 实际拿到的参数 a 和 b, c 为undefined
c = b;
b = null; // b变成了默认值
return c;
}
}
console.log(a2(2,3));
rest 参数
function sum(a,b) {
var i; rest = [];
if (arguments.length >2) {
for (i=2; i<arguments.length;i++){
rest.push(arguments[i]);
}
}
console.log('a = '+ a);
console.log(('b = '+ b));
console.log(rest);
}
console.log(sum(1,2,3,4,5));
ES5-ES6 新标准
function sum1(a, b,...c){
console.log('a = '+ a);
console.log(('b = '+ b));
console.log('c= '+c);
}
console.log(sum1(1,2,3,4,5,6));
js有一个神奇的机制 - 在行末自动添加分号的机制
function s() {
return{
name:'s'
};
}
console.log(s());