function 函数名称( )"小括号不可省去" { 函数体 }
/* 函数声明方式 */ function fun() { /* 在定义函数时,函数体中的内容不会被执行 */ console.log( '哑吼吼' ); } /* 调用函数 - 使用函数名称 * 调用函数的时候会执行函数体中的内容 */ fun();
var 函数名 = function( )"小括号不可省去" { 函数体 }
/* 字面量方式 */ var fn = function() { /* 在定义函数时,函数体中的内容不会被执行 */ console.log( '吼哑哑' ); } /* 调用函数 - 使用函数名称 * 调用函数的时候会执行函数体中的内容 */ fn();
/* 定义函数 - 形参 */ function fun( a, b ){ /* 在参数中: 形参与实参个数相对应 * 形参的个数多于实参个数时,没有对应实参的形参会显示 undefined * 实参的个数多于形参个数时,没有对应形参的实参会没有显示 */ console.log( a, b );// 显示效果:a=1,b=2 } /* 调用函数 - 实参 */ fun( 1, 2 );
return语句通常会被编写在函数体的最后面函数
function fun(){ console.log( '啊哈哈' ); return 100; } /* 调用函数 */ fun();// 显示 啊哈哈 /* 将函数的返回值 赋值到变量中 */ var funs = fun(); /* 显示返回值 */ console.log( funs );// 显示 100 /* return语句不在函数体最后 */ function fn(){ console.log( '啊哈哈' ); return; console.log( '呀吼吼吼' ); } fn();// 显示 啊哈哈 var fns = fn(); console.log( fns );// 显示 undefined
做用域分为(变量和函数同样):全局做用域和局部做用域(函数做用域)code
/* 做用在全局做用域 */ var num = 100; console.log( num ); /* 同时做用在局部做用域 */ function fun() { console.log( num ); } fun(); /* 定义全局变量 */ var num1 = 100; function fn() { console.log( num1 ); /* 定义局部变量 - 只能做用于当前函数 */ var num2 = 100; console.log( num2 ); } fn(); /* 在全局做用域调用局部变量会报错 */ console.log( num2 );// 显示 num2 is not define
/* 定义全局函数 */ function fun(){ console.log( '啊哈哈' ); /* 定义内部函数 */ function fu(){ console.log( '呀吼吼' ); } fu(); } /* 全局做用域 */ fun(); /* 在全局做用域调用内部函数会报错 */ fu();// 显示 fu is not defined /* 定义另外一个全局函数 */ function fn(){ /* 函数中能够调用全局函数 */ fun(); /* 没法调用另外一个函数的内部函数 - 会报错 */ fu();// 显示 fu is not defined } fn();
/* 先调用未定义的变量,在随后定义,语法不会报错,会显示 undefined */ console.log( s );//显示结果:undefined var s ;//调用后定义 /* 从新定义并赋值 */ var s = 100; /* 显示效果 */ console.log( s );// 100
/* 全局变量 */ var s = 100; function f ( s ) { s++;// 修改局部变量 return s;// 返回数值 } /* 定义变量显示返回值 */ var ss = f( s ); /* 显示函数输出效果 */ console.log( ss );// 101 /* 显示全局变量 */ console.log( s );// 100