定义函数的方法
1、函数声明
function函数名(){}
function sum(num1, num2) {
return num1 + num2;
}
2、函数表达式
var函数名=function(){}
var函数名=function函数名(){}
var sum =function(num1, num2) {
return num1 + num2;
}
3、实例化函数
var函数名=newFunction('var a=1;console.log(a)');
var aa= new Function("a","b","return a+b")
anonymous:匿名函数
函数的返回值
函数默认的返回值为undefined需要返回指定的值需要return语句
函数中的return语句是指定函数调用后的返回值return语句只能在函数体内出现中断语句的执行
例如
function sum(num1, num2) {
sum = num1 + num2;
}
console.log(sum(10, 20));
它打印出来的结果为undefined;
如果
function sum(num1, num2) {
return = num1 + num2;
}
console.log(sum(10, 20));
打印结果为30
函数的参数
形参
形式性的参数:命名的参数只提供的便利,但不是必需的
var sum =function(num1, num2) {
return num1 + num2;
}
console.log(sum(10, 20));
num1,num2为形参
实参
实际性的参数:调用有函数时传入有值的参数
不介意参数的多少,参数的类型arguments对象:实参的数组,从而获取传递给函数的每一个参数
arguments对象的长度是由传入的参数个数决定的,不是由定义函数时的命名参数的个数决定的
也有length属性,代表传入了几个参数
var sum =function(num1, num2) {
return num1 + num2;
}
console.log(sum(10, 20));
10,20为实参
function aa(){
console.log(arguments[2]);
}
aa(2,3,4,5,6);
打印结果为4
var obj = 'hello world'
for (i = 0; i < obj.length; i++) {
(function (n) {
console.log(n);
})(i)
}
结果为函数内外(局部与全局)变量,及区别
局部变量
在其内边定义的变量成为局部变量
只能在内部访问
全局变量在函数体外,整个执行环境为window下定义的变量成为全局变量可在全局及局部均可访问到
var a = 30
function aa() {
a= 20
console.log(a) //结果为20
}
aa()
console.log(a) //结果为30
自执行函数
(function (形参) {
console.log(n); //执行代码
})(实参)