js函數(shù)調(diào)用的方式
Js函數(shù)調(diào)用的方式有如下幾種情況:
(1)具名函數(shù)直接調(diào)用
function foo()
{
}
foo();
(2)匿名函數(shù)通過引用來調(diào)用
fooRef = function()
{
}
fooRef();
(3)沒有引用的匿名函數(shù)調(diào)用1
(function()
{
}());
(4)沒有引用的匿名函數(shù)調(diào)用2
(function()
{
})();
(5)沒有引用的匿名函數(shù)調(diào)用3
void function()
{
}();

圖1.1,圖1.2表明了這兩種表達(dá)式的運(yùn)算過程是不一樣的,圖1.1中是用強(qiáng)制運(yùn)算符使函數(shù)調(diào)用運(yùn)算得以執(zhí)行,圖1.2中則用強(qiáng)制運(yùn)算符運(yùn)算"函數(shù)直接量聲明"這個(gè)表達(dá)式,并返回一個(gè)函數(shù)自身的引用,然后通過函數(shù)調(diào)用運(yùn)算"()"來操作這個(gè)函數(shù)引用。而上面的最后一個(gè)匿名函數(shù)調(diào)用void function(){}();則用于調(diào)用函數(shù)并忽略返回值,運(yùn)算符void用于使其后面的函數(shù)表達(dá)式執(zhí)行運(yùn)算。如果我們不使用"void"與強(qiáng)制運(yùn)算"()",代碼能否執(zhí)行:
(1)function(){}() //使用''()"強(qiáng)制調(diào)用
(2)function(){}(); //使用";"來執(zhí)行語句
腳本引擎會(huì)認(rèn)為function(){}是函數(shù)聲明,從而通不過語法檢測(cè),代碼被解析成這樣:
function(){};();
function(){}被作為聲明被解釋,而"();"被獨(dú)立成一行來解釋,因而會(huì)報(bào)語法錯(cuò)誤,為什么知道是"();"導(dǎo)致的錯(cuò)誤?我們改成如下代碼:
function(){}(1);
這樣就會(huì)被引擎解釋為:
fucntion(){};
(1); //單值表達(dá)式
因而通過了語法檢測(cè)...
相關(guān)文章
JavaScript入門教程(8) Location地址對(duì)象
location 地址對(duì)象 它描述的是某一個(gè)窗口對(duì)象所打開的地址。要表示當(dāng)前窗口的地址,只需要使用“l(fā)ocation”就行了2009-01-01大型JavaScript應(yīng)用程序架構(gòu)設(shè)計(jì)模式
11月中旬在倫敦舉行的jQuery Summit頂級(jí)大會(huì)上有個(gè)session講的是大型JavaScript應(yīng)用程序架構(gòu),看完P(guān)PT以后覺得甚是不錯(cuò),于是整理一下發(fā)給大家共勉。2016-06-06javaScript parseInt字符轉(zhuǎn)化為數(shù)字函數(shù)使用小結(jié)
前幾天做網(wǎng)站的時(shí)候需要講數(shù)據(jù)庫(kù)中的時(shí)間讀取到變量中進(jìn)行使用,用到parseInt函數(shù),講字符轉(zhuǎn)化為數(shù)字。2009-11-11