javascript
JavaScript函数简介
1./* JavaScript函數(shù)
???函數(shù)function
???- 函數(shù)也是一個(gè)對(duì)象
???- 函數(shù)中可以封裝一些功能(代碼),在需要的使用可以執(zhí)行這些功能(代碼)
???- 函數(shù)中可以保存一些代碼在需要的時(shí)候調(diào)用
???- 使用typeof檢查一個(gè)函數(shù)對(duì)象時(shí),會(huì)返回function
*/
//1.使用構(gòu)造函數(shù)創(chuàng)建一個(gè)函數(shù)對(duì)象
//2.使用函數(shù)聲明創(chuàng)建一個(gè)函數(shù)
//3.使用函數(shù)表達(dá)式創(chuàng)建一個(gè)函數(shù)/匿名函數(shù)
{//代碼塊
console.log("蘋果");
console.log("葡萄");
console.log("菠蘿");
}
// var obj=new Object();
//我們?cè)陂_發(fā)的時(shí)候不建議使用這種方式
//可以將要封裝的代碼以字符串的形式傳遞給構(gòu)造函數(shù)
var fun1=new Function("console.log('這是通過(guò)構(gòu)造函數(shù)創(chuàng)建的函數(shù)')");
console.log(typeof fun1);
//封裝到函數(shù)中的代碼不會(huì)即可執(zhí)行
//函數(shù)中的代碼會(huì)在函數(shù)調(diào)用的時(shí)候執(zhí)行
//調(diào)用函數(shù):語(yǔ)法 函數(shù)對(duì)象();
//當(dāng)調(diào)用函數(shù)時(shí),函數(shù)中封裝的代碼會(huì)按照順序執(zhí)行
fun1();
/*使用函數(shù)聲明來(lái)創(chuàng)建一個(gè)函數(shù)(建議使用方式)
??語(yǔ)法:function 函數(shù)名([形參1,形參2,...,形參N]){
?? //語(yǔ)句
?? }
??說(shuō)明:[形參1,形參2,...,形參N]這里的[]表示可以使用參數(shù)也可以不使用參數(shù)
??函數(shù)的調(diào)用:函數(shù)名([實(shí)參1,實(shí)參2,...]);
*/
function fun2(){
console.log("蘋果");
console.log("葡萄");
console.log("菠蘿");
}
fun2();
//匿名函數(shù)
// function(){
//
// }
//使用函數(shù)表達(dá)式創(chuàng)建一個(gè)函數(shù)
var fun3= function(){
alert("這是一個(gè)匿名函數(shù)")
};
fun3();
/*定義一個(gè)用來(lái)求兩個(gè)數(shù)和的函數(shù)
可以在函數(shù)的()中來(lái)指定一個(gè)或多個(gè)形參(形式參數(shù))
多個(gè)形參之間使用","隔開,聲明形參就相當(dāng)于在函數(shù)內(nèi)部聲明了對(duì)應(yīng)的變量
但是并不賦值
*/
function sum(a,b){
var add=a+b;//false+"123" =>false123
console.log(add);
}
sum(123,456,45,56,56,67);
sum(false,"123");
/*調(diào)用函數(shù)時(shí)解析器不會(huì)檢查實(shí)參的類型,
所以要注意,是否有可能會(huì)接收到非法的參數(shù),如果有可能則需要對(duì)參數(shù)進(jìn)行類型的檢查
*/
/*調(diào)用函數(shù)時(shí),解析器也不會(huì)對(duì)檢查實(shí)參的數(shù)量
多余的參數(shù)將不會(huì)被賦值
如果實(shí)參少于形參的數(shù)據(jù),則沒有對(duì)應(yīng)實(shí)參的形參將是undefined
*/
function result(a,b,c){
console.log("a="+a);
console.log("b="+b);
console.log("c="+c);
var sum=a+b+c;
console.log("sum="+sum);
}
result(123,234);//實(shí)參少于形參
result(123,234,345,6767,78,9);//實(shí)參多余形參
/*32.0 JavaScript函數(shù)的返回值
創(chuàng)建一個(gè)函數(shù),用來(lái)計(jì)算三個(gè)數(shù)的和
可以通過(guò)return 來(lái)返回函數(shù)的返回值
語(yǔ)法:return 值;
return 后面值將會(huì)作為函數(shù)的執(zhí)行結(jié)果返回,
可以定義一個(gè)變量來(lái)接收函數(shù)的返回值
在函數(shù)return后的語(yǔ)句都不會(huì)執(zhí)行
如果return語(yǔ)句后不跟任何值,就相當(dāng)于返回一個(gè)undefined
*/
function sum(a,b){
var c=a+b;
return c;
alert("234234");
alert("234234");
alert("234234");
alert("234234");
}
var total = sum(12,45);
console.log("返回結(jié)果=="+total);
/* 立即執(zhí)行函數(shù)
函數(shù)定義完,立即被調(diào)用,這種函數(shù)叫做立即執(zhí)行函數(shù)
立即執(zhí)行函數(shù)往往只會(huì)執(zhí)行一次
*/
(function(){
alert("這是一個(gè)立即執(zhí)行函數(shù)");
})();
(function(a,b){
alert(a+b);
})(23,23);
call()與apply()
- 這兩個(gè)方法都是函數(shù)對(duì)象的方法,需要通過(guò)函數(shù)對(duì)象來(lái)調(diào)用
- 當(dāng)對(duì)函數(shù)調(diào)用call()和apply()都會(huì)去調(diào)用函數(shù)執(zhí)行
- 在調(diào)用call()與apply()可以將一個(gè)對(duì)象指定為第一個(gè)參數(shù)
此時(shí)這個(gè)對(duì)象將會(huì)成為函數(shù)執(zhí)行時(shí)的this
- call()方法可以將實(shí)參在對(duì)象之后依次傳遞
- apply() 方法需要將實(shí)參封裝到一個(gè)數(shù)組中統(tǒng)一傳遞
總結(jié)
以上是生活随笔為你收集整理的JavaScript函数简介的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Linux中为什么sem_open返回0
- 下一篇: 辰视智能工业机器人3D视觉引导解决方案曲