java編程 JavaScript和java有啥聯(lián)系嗎?
JavaScript和java有啥聯(lián)系嗎?讓我告訴你一個故事:當(dāng)時,網(wǎng)景與Java所在的Sun公司有合作關(guān)系](其實,如果你問這個問題,你就會知道流行已經(jīng)成功了]最后,它改名為JavaScript]題
JavaScript和java有啥聯(lián)系嗎?
讓我告訴你一個故事:
當(dāng)時,網(wǎng)景與Java所在的Sun公司有合作關(guān)系
](其實,如果你問這個問題,你就會知道流行已經(jīng)成功了
]最后,它改名為JavaScript
]題外話:
事實上,微軟也生產(chǎn)了客戶端腳本語言,命名為VBScript和JScript。
嚴(yán)格來說,現(xiàn)在還沒有JavaScript
1996年,JavaScript提交給了ECMA國際標(biāo)準(zhǔn)委員會,命名為ECMAScript
ECMA的TC39小組負(fù)責(zé)制定該語言的規(guī)范,每年更新規(guī)范,并引入該語言的新特性。所以大家會看到Es1 ES2 Es3 Es4 Es5 ES6
ES6被稱為下一代JavaScript
是es2016 es2017 es2018 es2019 es2020的總稱
關(guān)于這個問題,不同的人有不同的理解。對于Java初學(xué)者來說,他們可能認(rèn)為Java中的參數(shù)傳遞分為值傳遞和引用傳遞。至于為什么,教科書上說了。對于程序員的某些工作年限,他們可能會認(rèn)為,如果傳遞的參數(shù)類型是普通類型,則傳遞的是值;如果參數(shù)是對象,則傳遞的是引用。另一些人認(rèn)為,只有Java中的值傳遞才是主要問題的主題。
對于Java編程語言,前兩種理解是錯誤的。Java中只使用值傳遞。對我來說,一開始,我也理解了價值傳遞和參照傳遞的理論,但隨著自己代碼的積累,我逐漸發(fā)現(xiàn)事實并非如此。那么為什么只有價值傳遞呢?
首先,讓我們了解什么是值傳遞,什么是引用傳遞?
值傳輸意味著調(diào)用函數(shù)時,實際參數(shù)值被復(fù)制并傳遞給被調(diào)用函數(shù)。修改被調(diào)用函數(shù)中的參數(shù)值不會影響原始參數(shù)值。
引用傳遞意味著調(diào)用函數(shù)時,實際參數(shù)的地址直接傳遞給被調(diào)用函數(shù)。修改被調(diào)用函數(shù)中的參數(shù)值將影響原始參數(shù)值。
如果傳遞的參數(shù)類型是普通基本類型,則必須復(fù)制實際參數(shù)值并將其傳遞給形式參數(shù)。但是,當(dāng)參數(shù)類型是對象時,它也是復(fù)制的參數(shù)值,并將其傳遞給形式參數(shù)。只復(fù)制對象的引用地址,即內(nèi)存中分配的存儲地址,而不是直接傳遞的引用地址。
此時,有些人可能會問為什么一個對象會被傳遞給另一個方法。在此方法中修改對象的屬性值時,原始調(diào)用方法中對象的屬性值將更改。這不就是參考傳遞嗎?
事實上,這是一個非常令人困惑的問題。如果你仔細(xì)看看上面的說法,事實并非如此。將一個對象傳遞給另一個方法會傳遞什么?傳遞對象引用的地址。對象引用的地址是否已在其他方法中修改?原始對象引用是否受影響?不
!因此,Java中沒有引用傳遞,只有值傳遞。不要犯任何錯誤!