js獲取兩個(gè)值的最大值 JavaScript中函數(shù)都是值傳遞嗎?
JavaScript中函數(shù)都是值傳遞嗎??jī)r(jià)值轉(zhuǎn)移在不同的層面有不同的含義!你可以認(rèn)為JavaScript函數(shù)調(diào)用參數(shù)都是值傳遞,也可以認(rèn)為分?jǐn)?shù)傳遞和引用傳遞是兩種!這兩種情況下的值傳遞的意義是不同的,
JavaScript中函數(shù)都是值傳遞嗎?
價(jià)值轉(zhuǎn)移在不同的層面有不同的含義!
你可以認(rèn)為JavaScript函數(shù)調(diào)用參數(shù)都是值傳遞,也可以認(rèn)為分?jǐn)?shù)傳遞和引用傳遞是兩種!這兩種情況下的值傳遞的意義是不同的,但后者是大多數(shù)程序員的第一次接觸。
如果你能理解我下面說(shuō)的話,你就贏了。;不要對(duì)此感到困惑,其他語(yǔ)言也是如此。
在語(yǔ)言設(shè)計(jì)中JavaScript的類(lèi)型設(shè)計(jì)中,有兩種類(lèi)型:基本類(lèi)型(值類(lèi)型)和引用類(lèi)型?;绢?lèi)型在堆棧上分配,或者附加到引用類(lèi)型并存儲(chǔ)在堆中??吹街殿?lèi)型存儲(chǔ)在堆里,估計(jì)很多人要開(kāi)始吐槽了!但是冷靜下來(lái),從內(nèi)存的角度想想什么是引用類(lèi)型的實(shí)例。它只是一堆值類(lèi)型和嵌入的其他引用類(lèi)型的組合。如果你遞歸地思考一下,你就會(huì)明白最終的數(shù)據(jù)是由基本值類(lèi)型承載的。也就是說(shuō),除了少數(shù)引用對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)外,大部分都是值類(lèi)型數(shù)據(jù)。在考慮值類(lèi)型和引用類(lèi)型的區(qū)別時(shí),有沒(méi)有考慮到這一點(diǎn)?
從語(yǔ)言層次來(lái)看,函數(shù)的參數(shù)傳遞時(shí),會(huì)復(fù)制值類(lèi)型,也會(huì)復(fù)制引用類(lèi)型的引用。此時(shí),兩個(gè)引用指向同一個(gè)拷貝。如果您訪問(wèn)或修改引用類(lèi)型的數(shù)據(jù)字段,您實(shí)際上是在修改相同的數(shù)據(jù)。這樣是不是更好理解?
所以從這個(gè)層面來(lái)說(shuō),可以說(shuō)有分?jǐn)?shù)傳遞和參考傳遞兩種。這里的值傳遞和引用傳遞實(shí)際上包含了語(yǔ)言特性。
從函數(shù)調(diào)用的角度,假設(shè)我們忽略了語(yǔ)言中基本類(lèi)型或者值類(lèi)型的設(shè)計(jì),而只從函數(shù)調(diào)用的角度?
從上面的描述中,你已經(jīng)知道值類(lèi)型被復(fù)制,引用被復(fù)制。從函數(shù)本身來(lái)看,它只完成了復(fù)制功能。對(duì)于基本類(lèi)型,它復(fù)制基本類(lèi)型表示的數(shù)據(jù),對(duì)于引用類(lèi)型,它復(fù)制引用類(lèi)型的引用(如果放在C語(yǔ)言中,把引用改成指針可能更直觀)。
本質(zhì)上,函數(shù)調(diào)用只是在參數(shù)處理中被復(fù)制,所以你可以說(shuō)是值傳遞。It 只是這里的值實(shí)際上包含了上述語(yǔ)言級(jí)別的兩個(gè)東西:值類(lèi)型的值、引用或指針。
總結(jié)統(tǒng)一概念的內(nèi)涵是我們程序員遇到的最大問(wèn)題,這里的值傳遞就是一個(gè)典型的問(wèn)題。本質(zhì)只有一個(gè),但每個(gè)人站在不同的角度和層面,都會(huì)賦予概念不同的內(nèi)涵。如果內(nèi)涵不同,討論結(jié)論是沒(méi)有結(jié)果的。
用JavaScript求兩個(gè)數(shù)的最大公因數(shù)和最小公倍數(shù)?
請(qǐng)寫(xiě)一個(gè)完整的代碼,包括HTML部分,求編程建議。
如果你不 不要伸出這樣的手問(wèn)問(wèn)題,如何在百度上自己計(jì)算兩個(gè)數(shù)的最大公約數(shù)和最小公倍數(shù),可以 如果你有方法,就不要寫(xiě)?