定義函數(shù)的方法
1、函數(shù)聲明
function函數(shù)名(){}
function sum(num1, num2) {
return num1 + num2;
}
2系吩、函數(shù)表達(dá)式
var函數(shù)名=function(){}
var函數(shù)名=function函數(shù)名(){}
var sum =function(num1, num2) {
return num1 + num2;
}
3、實(shí)例化函數(shù)
var函數(shù)名=newFunction('var a=1;console.log(a)');
var aa= new Function("a","b","return a+b")
anonymous:匿名函數(shù)
函數(shù)的返回值
函數(shù)默認(rèn)的返回值為undefined需要返回指定的值需要return語句
函數(shù)中的return語句是指定函數(shù)調(diào)用后的返回值return語句只能在函數(shù)體內(nèi)出現(xiàn)中斷語句的執(zhí)行
例如
function sum(num1, num2) {
sum = num1 + num2;
}
console.log(sum(10, 20));
它打印出來的結(jié)果為undefined;
如果
function sum(num1, num2) {
return = num1 + num2;
}
console.log(sum(10, 20));
打印結(jié)果為30
函數(shù)的參數(shù)
形參
形式性的參數(shù):命名的參數(shù)只提供的便利诊赊,但不是必需的
var sum =function(num1, num2) {
return num1 + num2;
}
console.log(sum(10, 20));
num1,num2為形參
實(shí)參
實(shí)際性的參數(shù):調(diào)用有函數(shù)時(shí)傳入有值的參數(shù)
不介意參數(shù)的多少奈虾,參數(shù)的類型arguments對象:實(shí)參的數(shù)組,從而獲取傳遞給函數(shù)的每一個(gè)參數(shù)
arguments對象的長度是由傳入的參數(shù)個(gè)數(shù)決定的菜职,不是由定義函數(shù)時(shí)的命名參數(shù)的個(gè)數(shù)決定的
也有l(wèi)ength屬性青抛,代表傳入了幾個(gè)參數(shù)
var sum =function(num1, num2) {
return num1 + num2;
}
console.log(sum(10, 20));
10,20為實(shí)參
function aa(){
console.log(arguments[2]);
}
aa(2,3,4,5,6);
打印結(jié)果為4
var obj = 'hello world'
for (i = 0; i < obj.length; i++) {
(function (n) {
console.log(n);
})(i)
}
結(jié)果為微信截圖_20190729205555.png
函數(shù)內(nèi)外(局部與全局)變量,及區(qū)別
局部變量
在其內(nèi)邊定義的變量成為局部變量
只能在內(nèi)部訪問
全局變量在函數(shù)體外酬核,整個(gè)執(zhí)行環(huán)境為window下定義的變量成為全局變量可在全局及局部均可訪問到
var a = 30
function aa() {
a= 20
console.log(a) //結(jié)果為20
}
aa()
console.log(a) //結(jié)果為30
自執(zhí)行函數(shù)
(function (形參) {
console.log(n); //執(zhí)行代碼
})(實(shí)參)