es6和javascript哪個(gè)好 JavaScript能一統(tǒng)天下嗎?
JavaScript能一統(tǒng)天下嗎?編程中有句話:能用javascript寫(xiě)的模塊,最終都會(huì)用javascript編寫(xiě)??!雖說(shuō)成分夸大,但是也能看到j(luò)s的未來(lái)趨勢(shì)相當(dāng)好?。‰S著es6慢慢的普及,js也完
JavaScript能一統(tǒng)天下嗎?
編程中有句話:能用javascript寫(xiě)的模塊,最終都會(huì)用javascript編寫(xiě)!!雖說(shuō)成分夸大,但是也能看到j(luò)s的未來(lái)趨勢(shì)相當(dāng)好?。?/p>
隨著es6慢慢的普及,js也完全可以hold住大型項(xiàng)目啦!
每種需要都有本身的優(yōu)劣性,怎么可能做到統(tǒng)一天下呢?
JavaScript / ES6新關(guān)鍵詞let是否在任何情況下都優(yōu)于var?
已經(jīng)知道let相比于var有許多優(yōu)點(diǎn)。但是是否存在一些場(chǎng)景下用var更加合適?
老一批程序員應(yīng)該都知道JS定義變量用var關(guān)鍵字,還有較多程序員不知道ES6新推出的let關(guān)鍵字。在JS中看上去用var和let關(guān)鍵字都能定義變量,相信有不少朋友會(huì)納悶,var和let誰(shuí)更好呢?這里我要說(shuō)的是,以后寫(xiě)JS代碼,請(qǐng)忘記var關(guān)鍵字,全部改用let來(lái)定義變量!
JavaScript中定義變量的兩種傳統(tǒng)的JS是使用var關(guān)鍵字來(lái)定義變量,但在ES6時(shí)推出了let關(guān)鍵字用來(lái)定義局部變量。兩者在語(yǔ)法上并沒(méi)有太大區(qū)別,都是用來(lái)定義變量的。
為什么建議用let替代var定義變量?要知道,JS的作用域只有兩種:全局作用域、函數(shù)作用域,沒(méi)有塊級(jí)作用域。
這意味著在JS中如果用傳統(tǒng)的var關(guān)鍵字是無(wú)法定義局部變量的!可能大家不太明白,這里舉個(gè)例子:
在上面的代碼中,我們?cè)趂or循環(huán)中定義了一個(gè)i變量(我們正常理解時(shí),希望i變量是個(gè)局部變量),但循環(huán)執(zhí)行完后,依舊是可以訪問(wèn)到i變量的(因?yàn)镴S的每個(gè)循環(huán)體都是一個(gè)獨(dú)立的塊級(jí)作用域),這樣帶來(lái)的壞處就是:變量污染!
如果我們把var換成let來(lái)定義,則循環(huán)執(zhí)行完后是到i變量的,此時(shí)的i變量才是真正意義上的局部變量。
除了上面說(shuō)到的優(yōu)點(diǎn)外,let定義的變量還有這些優(yōu)點(diǎn):
不會(huì)進(jìn)行默認(rèn)的變量提升;
let聲明的變量是不能重復(fù)聲明的;
總結(jié)由于傳統(tǒng)JS的作用域只有全局作用域和函數(shù)作用域,這種情況下濫用var有時(shí)會(huì)出現(xiàn)變量污染的情況;而ES6推出的let關(guān)鍵字定義的變量是有塊級(jí)作用域的,從代碼規(guī)范性上說(shuō),這樣更加規(guī)范和安全,建議大家忘掉var關(guān)鍵字。
web前端的JavaScript需要學(xué)什么,按什么流程學(xué)習(xí)呢?
需要掌握的知識(shí)比較多:
第一:Javascript 語(yǔ)言核心部分;
第二:BOM部分;
第三:DOM部分;
第四:HTML5部分的Web應(yīng)用開(kāi)發(fā);
以上總體來(lái)說(shuō),都是基礎(chǔ)部分。
除此之外,還有一部分的JS框架,都是比較流行的,在此就不多說(shuō)了,先把以上基礎(chǔ)的掌握好,剩下的自然而然就知道如何學(xué)了。