工作需要,最近需要學(xué)習(xí)JavaScript果录。原本是Java開(kāi)發(fā)后臺(tái)论矾,在學(xué)習(xí)JavaScript處理前端工程的時(shí)候献酗,發(fā)現(xiàn)JavaScript和Java的一些開(kāi)發(fā)上的區(qū)別还最。
變量
Java采用強(qiáng)類(lèi)型變量檢查,即所有變量在編譯之前必須做聲明;JavaScript中變量是弱類(lèi)型的,甚至在使用變量前可以不作聲明未舟,JavaScript的解釋器在運(yùn)行時(shí)檢查推斷其數(shù)據(jù)類(lèi)型。
形參和實(shí)參
Java的方法在沒(méi)有聲明可變長(zhǎng)參數(shù)情況下掂为,實(shí)參數(shù)目和形參數(shù)目需要一致裕膀,JavaScript的調(diào)用函數(shù)時(shí)傳遞的實(shí)參數(shù)目與形參不一定相同的。
JavaScript調(diào)用函數(shù)傳遞的實(shí)參與定義函數(shù)規(guī)定的形參是依次對(duì)應(yīng)的勇哗,即第1個(gè)實(shí)參的值傳遞給第1個(gè)形參昼扛,第2個(gè)實(shí)參的值傳遞給第2個(gè)形參(但又不是絕對(duì),例如vuex中mutations的方法欲诺,第1個(gè)形參數(shù)默認(rèn)是state抄谐,不需要再實(shí)參中傳遞值,第1個(gè)實(shí)參是傳遞給第2個(gè)形參)瞧栗。
Lambda
Lambda(箭頭函數(shù))在日常的Java開(kāi)發(fā)中使用較少斯稳,但是再JavaScript開(kāi)發(fā)中經(jīng)常使用海铆,最常見(jiàn)的就是Promise的回調(diào)處理迹恐。
后面是小括號(hào)的箭頭函數(shù)默認(rèn)只有一行代碼,默認(rèn)有返回卧斟,后面是大括號(hào)的默認(rèn)是代碼段殴边,默認(rèn)沒(méi)有返回值憎茂,需要手動(dòng)添加return。
const f2=(a,b)=>(a+b)
與
const f =(a,b)=>{
const c =a+b
return c
}
解構(gòu)賦值
JavaScript支持解構(gòu)賦值锤岸,案例如下:
let {web:webSiteName,url:webUrl} ={web:"貓貓教程",url:"http://www.maomao365.com"};
document.write(webSiteName+" ");
document.write(webUrl);
以上代碼會(huì)輸出:
貓貓教程 http://www.maomao365.com