1、函數聲明
function fn(){}
2、函數表達式(構造函數)
var fn = function (){};
var fn = new Function("num1","num2","return num1+num2");
·兩者區別:函數聲明有函數聲明提升的過程
例:
console.log(sum(10,20));
function sum(num1,num2){
return num1 + num2;
}
·而函數表達式則必須等到解析器執行到它所在的代碼行,才會真正的被解析。
例:
console.log(sum(10,20));
var sum = function(num1,num2){
return num1 + num2;
}
·可以同時使用函數聲明和函數表達式,例如:var sum = function sum(){};
//demo1
function sum(num1,num2){
return num1 + num2;
}
console.log(sum(10,10));
var anotherSum = sum;
console.log(anotherSum(10,10));
sum = null;
console.log(sum(10,10));
console.log(anotherSum(10,10));
說明:函數是對象,函數名是指針;
//封裝一個函數:輸出100(min)到10000(max)以內的水仙花數;說明:水仙花數
是指一個n(n>=3)位數字的數,它等于每個數字的n次冪(pow)之和。
// 例如:153 = 1的3次方 + 5的3次方 + 3的3次方。
// 1634 = 1的4次方 + 6的4次方 + 3的4次方 + 4的4次方。
function fn(min,max){
var arr = [];
for(var i=min;i<=max;i++){
var str = i.toString();
var sum = 0;
for(var j=0;j<str.length;j++){
sum += Math.pow(str[j],str.length);
}
if(i == sum){
arr.push(sum);
}
}
document.write(arr);
}
fn(100,10000);