函数也是属于一个对象
函数用于封装一些功能(代码),在需要时可以执行
函数中可以保存一些代码,在需要的时候调用执行
使用typeof检查对象时,返回function
创建一个函数对象
可以将要封装的代码以字符串的形式传递给构造函数
var fun = new Function("console.log("hello world")")
其中封装到函数中的代码不会立即执行,只有在被调用的时候按照顺序执行。
调用函数的语法:函数对象()
fun()
创建函数
- 函数声明的方式
语法:
function 函数名([形参1,形参2...形参N]){
...
}
function fun2(){
console.log("the is a function")
alert("hello")
document.write("world")
}
- 函数表达式的方式
语法:
var 函数名=function([形参1,形参2...形参N]){
语句...
}
var fun3=function(){
console.log("1111“)
}
函数中的参数
-
定义一个用来求两个数和的函数
* 可以在函数的()中来指定一个或多个形参(形式参数) * 多个形参之间使用,隔开,声明形参就相当于在函数内部声明了对应的变量 * 但是并不赋值
function sum(a,b){
console.log("a = "+a);
console.log("b = "+b);
console.log(a+b);
}
-
在调用函数时,可以在()中指定实参(实际参数)
* 实参将会赋值给函数中对应的形参
-
调用函数时解析器不会检查实参的类型,
* 所以要注意,是否有可能会接收到非法的参数,如果有可能则需要对参数进行类型的检查 * 函数的实参可以是任意的数据类型 *
-
调用函数时,解析器也不会检查实参的数量
* 多余实参不会被赋值 * 如果实参的数量少于形参的数量,则没有对应实参的形参将是undefined *
-
创建一个函数,用来计算三个数的和
* 可以使用 return 来设置函数的返回值 * 语法: * return 值 * return后的值将会会作为函数的执行结果返回, * 可以定义一个变量,来接收该结果 * 在函数中return后的语句都不会执行 * 如果return语句后不跟任何值就相当于返回一个undefined, * 如果函数中不写return,则也会返回undefined * return后可以跟任意类型的值
function sum(a , b , c){
//alert(a + b +c);
var d = a + b + c;
return d;
//return undefined;
调用函数
变量result的值就是函数的执行结果
函数返回什么result的值就是什么
var result = sum(4,7,8);
//var result = alert("hello");
console.log("result = "+result);
- sum()
-
- 调用函数
-
- 相当于使用的函数的返回值
sum
-
- 函数对象
-
- 相当于直接使用函数对象
retun
使用break可以退出当前的循环
break;
continue用于跳过当次循环
continue;
使用return可以结束整个函数
return;
其中返回值可以是任意的数据类型,也可以是一个对象,也可以是一个函数
function fun3(){
//在函数内部再声明一个函数
function fun4(){
alert("我是fun4");
}
//将fun4函数对象作为返回值返回
return fun4;
}
a = fun3();
//console.log(a);
//a();
fun3()();
最后一句fun3()()等同于a(),其中fun3()()调用了fun4()
立即执行函数
-
立即执行函数
* 函数定义完,立即被调用,这种函数叫做立即执行函数 * 立即执行函数往往只会执行一次
语法(function ([形参1,形参2...形参N]){
代码...
})(实参1,实参2...)
(function(a,b){
console.log("a = "+a);
console.log("b = "+b);
})(123,456);