亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JavaScript進(jìn)階教程(第一課)第3/3頁

 更新時(shí)間:2007年04月06日 00:00:00   作者:  

這里是一個(gè)應(yīng)用變量的例子:
    var happiness = "a banana split";
    alert("The monkeys think happiness is " + happiness);
    這行代碼聲明一個(gè)叫做happiness的變量,然后在一個(gè)alert對話框中調(diào)用這個(gè)變量。如果你看過別人的JavaScript,你可能會(huì)注意到他們在聲明變量時(shí)使用了var,這種用法可能會(huì)造成問題。首先,可能會(huì)造成有些版本的MSIE癱瘓,或運(yùn)行不正常。這種情況在Mac機(jī)上的MSIE最有可能發(fā)生。其次,如果你編寫很復(fù)雜的JavaScripts,你必須編寫你自己的函數(shù),所以你必須了解變量的含義。
    正如上次的JavaScript教程: 第四課中所述,函數(shù)是被調(diào)用后執(zhí)行某特定功能的JavaScript程序代碼。最好的函數(shù)具有模塊化的特性,你可以控制輸入的變量以及輸出的結(jié)果。而且一旦編好之后你就無需擔(dān)心它會(huì)出問題,而且不會(huì)和別的函數(shù)發(fā)生沖突。要使編寫地函數(shù)具備這些穩(wěn)定的特性,你必須確保不要輕易改變那些作為參數(shù)傳遞給其他函數(shù)的變量. 下面對例子顯示了如果你不注意這些細(xì)節(jié)會(huì)造成什么后果。假設(shè)我們編寫一個(gè)程序?qū)⑷A氏溫度轉(zhuǎn)換為攝氏溫度。點(diǎn)擊華氏/攝氏來觀察一下我所指的意思。如果你轉(zhuǎn)換轉(zhuǎn)換華氏50度,則會(huì)出現(xiàn)一條信息:
    “50 degrees Fahrenheit is 10 degrees Celsius(華氏50度相當(dāng)于攝氏10度)?!?
    以下是代碼:
    function fahrenToCelsius(fare)
    {
        temp = (faren - 32) * 5/9;
        return temp;
    }
    function convertTemp()
    {
        temp = prompt("what temperature fahrenheit? ","50");
        celsius = fahrenToCelsius(temp);
        alert(temp + " degrees Fahrenheit is " + celsius + " degrees Celsius.");
    } 
    這個(gè)程序很簡單。一個(gè)叫做convertTemp()得函數(shù)調(diào)用另外一個(gè)叫做fahrenToCelsius()并返回結(jié)果。如果你對本程序不是很懂,你需要重新學(xué)習(xí)一下javasript初級教程第四課。
    關(guān)于這個(gè)例子讓人困惑之處在兩個(gè)函數(shù)中都有一個(gè)叫做temp的變量,在convertTemp()函數(shù)中它的作用是儲(chǔ)存華氏溫度Fahrenheit值 (由用戶提供)。在fahrenToCelsius()函數(shù)中,它用于計(jì)算轉(zhuǎn)換后的攝氏溫度值Celsius。這個(gè)不僅讓我們感到困惑而且也會(huì)讓這個(gè)Javascript程序感到困惑。如果你試圖用變量運(yùn)行這段代碼就會(huì)發(fā)生下面的結(jié)果:如果你希望轉(zhuǎn)換華氏50度,則會(huì)顯示下面的信息:"10 degrees Fahrenheit is 10 degrees Celsius."(華氏10度相當(dāng)于攝氏10度)。為什么你輸入的是華氏50度,而程序卻將其理解為你輸入了10度呢?我們來研究一下這個(gè)程序的執(zhí)行過程。當(dāng)我們調(diào)用函數(shù)convertTemp()并在提示欄中輸入了"50"時(shí),我們得到temp = 50;然后"temp"被傳遞給函數(shù)farenToCelsius()。在farenToCelsius()中,參數(shù)faren被設(shè)定為50,而"temp" 被設(shè)定為(50 - 32) x 5/9, 其結(jié)果是10。在返回結(jié)果之前,各項(xiàng)參數(shù)值是:
    faren = 50
    temp = 10
    現(xiàn)在farenToCelsius()將10返回給變量celsius: 
    temp = 10
    celsius = 10
    現(xiàn)在我們得到一個(gè)錯(cuò)誤的語句: "10 degrees Fahrenheit is 10 degrees Celsius"。如果你仔細(xì)一些,不要將兩個(gè)函數(shù)中的變量起同樣的名稱就可以避免這些問題。但這也不是最佳解決方案。當(dāng)你不斷加入更多的函數(shù)時(shí),很難確保你不會(huì)將函數(shù)中的變量重名。而且如果你重復(fù)使用許多變量名例如loop,index,count和the_name時(shí),使用不同的名稱實(shí)在是一個(gè)很令人頭疼的事。
    最好的解決辦法是讓JavaScript明白在fahrenToCelsius()函數(shù)中用到的變量temp和在convertTemp()函數(shù)中用到的變量temp是兩碼事。如果每個(gè)函數(shù)都有只應(yīng)用于本函數(shù)內(nèi)部的變量temp你就無需擔(dān)心不同函數(shù)中的同名變量會(huì)攪成一團(tuán)。而var就是用于這個(gè)目的。
    要使JavaScript中各種同名變量不會(huì)發(fā)生混淆,你可以在聲明變量時(shí)在變量前面加上var。在一個(gè)函數(shù)內(nèi)用var聲明后燈的變量叫做局部變量,它只存在于該函數(shù)內(nèi)部。通常情況下你應(yīng)該盡量使用局部變量。
    這里是用var聲明后的正確的JavaScript代碼:
    function fahrenToCelsius(faren)
    {
        var temp = (faren - 32) * 5 / 9;
        return temp;
    }
    function convertTemp()
    {
        var temp = prompt("what temperature Fahrenheit? ","50");
        var celsius = badFahrenToCelsius(temp);
        alert(temp + " degrees Fahrenheit is " + celsius + " degrees Celsius.");
    }
    現(xiàn)在當(dāng)我們輸入50時(shí),(在convertTemp函數(shù)內(nèi)部) temp = 50
    temp被傳遞到函數(shù)fahrenToCelsius(),在函數(shù)fahrenToCelsius()內(nèi)部,參數(shù)faren現(xiàn)在被設(shè)定為50,然后temp用以下代碼設(shè)定:
    var temp = (faren - 32) * 5 / 9;
    由于這個(gè)temp變量前面用var做了聲明,所以該變量同其他函數(shù)中叫做temp的變量不同。執(zhí)行完fahrenToCelsius()時(shí),該函數(shù)種的temp即告消失。所以在fahrenToCelsius()返回?cái)?shù)值前,faren = 50
    (在fahrenToCelsius內(nèi)部) temp = 10
    (在convertTemp內(nèi)部) temp = 50
    fahrenToCelsius()然后返回它的變量temp值10。一旦我們從fahrenToCelsius()函數(shù)中出來,該函數(shù)中等temp變量的作用即告終止。當(dāng)fahrenToCelsius() 返回時(shí),它將變量的值設(shè)置為10: 
    (在convertTemp內(nèi)部) temp = 50
    (在convertTemp內(nèi)部) celsius = 10
    現(xiàn)在顯示的信息將是我們所希望的"50 degrees Fahrenheit is 10 degrees Celsius"。

相關(guān)文章

最新評論