javascript和“主流大型语言”(c# JAVA C++等)的差异
1.javascript不支持overload,因?yàn)樗暮瘮?shù)參數(shù)是以數(shù)組方式來(lái)實(shí)現(xiàn)的,沒(méi)有固定的參數(shù)簽名,所以無(wú)法重載。
2.javascript的基本類(lèi)型只有5個(gè):number string boolean null undefined,注意,javascript的string就是基本類(lèi)型。跟其他語(yǔ)言不同。
3.javascript函數(shù)的參數(shù)傳遞并沒(méi)有什么引用類(lèi)型按值傳遞或值類(lèi)型按引用類(lèi)型傳遞等等的那么復(fù)雜,只有簡(jiǎn)單的一種方式:按值傳遞。甭管是什么類(lèi)型參數(shù)。
4.五大類(lèi)型變量除了null,其余的typeof都是該類(lèi)型名,只有null的typeof是object。原因是因?yàn)樵贓CMAScript構(gòu)造過(guò)程中把null當(dāng)成一個(gè)空指針對(duì)象來(lái)表示,所以它為object。
5.變量的作用域的分歧:javascript中,用{}來(lái)作為封閉域不靠譜。如循環(huán)語(yǔ)句或條件語(yǔ)句的{}構(gòu)不成封閉域,而function在書(shū)寫(xiě)時(shí)也會(huì)構(gòu)成或不構(gòu)成。示例代碼:
?
if(true){var a=1; } alert(a);//1function add(){var sum=arguments[0]+arguments[1];return sum; } var s=add(1,2); alert(sum);//產(chǎn)生錯(cuò)誤function adds(){sum=arguments[0]+arguments[1];//去掉varreturn sum; } var sb=adds(1,2); alert(sum);//3?
?
轉(zhuǎn)載于:https://www.cnblogs.com/JhoneLee/p/3480726.html
總結(jié)
以上是生活随笔為你收集整理的javascript和“主流大型语言”(c# JAVA C++等)的差异的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: AutoHotkey热键脚本语言文件
- 下一篇: C#代码计时