1. Gerbkite objekto nuosavybę Nepridėkite atributų prie egzempliorių ar prototipų; Nepridėkite metodų prie egzempliorių ar prototipų; Neapibrėžkite jau esamų metodų iš naujo. Geriausias būdas tai padaryti yra niekada nekeisti objektų, kurie jums nepriklauso. Objekto turėjimas reiškia, kad jį sukūrėte, pvz., pasirinktinį tipą arba objekto literalą, kurį sukūrėte patys. Masyvai ir dokumentai akivaizdžiai nėra jūsų, jie egzistuoja prieš vykdant kodą. 2. Venkite globalių kintamųjų Sukurkite daugiausiai globalų kintamąjį, leisdami jame egzistuoti kitiems objektams ir funkcijoms. Pažvelkite į šiuos pavyzdžius:
//两个全局量——避免!! var name = "Nikolajus"; funkcija sayName(){ įspėjimas (vardas);
} Šiame kode yra du globalūs dydžiai: kintamojo pavadinimas ir funkcija sayName(). Tiesą sakant, galite sukurti objektą, kuriame yra abu, kaip parodyta šiame pavyzdyje:
//一个全局量——推荐 var MyApplication = {
name: “Nicholas”,
sayName: function(){ įspėjimas (this.name);
} }; 3. Venkite lyginti su nuliu Jei vertė turi būti etaloninio tipo, naudokite operatoriaus egzempliorių, kad patikrintumėte jos konstruktorių; Jei reikšmė turi būti bazinio tipo, naudokite typeof, kad patikrintumėte jos tipą; Jei norite, kad objekte būtų konkretus metodo pavadinimas, naudokite operatoriaus tipą, kad įsitikintumėte, jog objekte yra nurodytas metodas. (Čia aš rekomenduoju savo žiniatinklio front-end mokymosi ir mainų grupę: 675498134, nesvarbu, ar esate naujokas, ar dievas, kviečiu jus ateiti ir mokytis ir bendrauti, ir dalintis sausomis prekėmis laikas nuo laiko, įskaitant naujausią front-end medžiagą ir vadovėlius, kad aš pats sukūriau jums duoti, ir yra techninių ekspertų, kurie paaiškina front-end žinias gyvai kiekvieną dieną. Pradedantieji ir pažengę draugai kviečiami mokytis ir bendrauti kartu bei daryti pažangą kartu. ) 4. Naudokite konstantas Nors Javascrip{filter}t neturi formalios konstantų sampratos, jis yra naudingas. Ši idėja atskirti duomenis nuo programos logikos gali pakeisti duomenis nerizikuojant įvesti klaidų. Pažvelkite į šiuos pavyzdžius: var Konstantos = { INVALID_VALUE_MSG: "Neleistina reikšmė!", INVALID_VALUE_URL: "/klaidos/invalid.php" }; funkcija validate(reikšmė){ if (!value){ įspėjimas (Constants.INVALID_VALUE_MSG); locatio{filter}n.href = Constants.INVALID_VALUE_URL;
}
} 5. Venkite visuotinės paieškos Tikriausiai svarbiausias dalykas norint optimizuoti scenarijaus našumą yra atkreipti dėmesį į visuotines paieškas. Globalių kintamųjų ir funkcijų naudojimas yra tikrai brangesnis nei vietinis, nes jis apima paieškas apimties grandinėje. Pažvelkite į šią funkciją: funkcija updateUI(){ var imgs = document.getElementsByTagName("img"); for (var i=0, len=imgs.length; Aš < len; i++){ imgs[i].title = document.title + " vaizdas " + i;
} var msg = document.getElementById("msg"); msg.innerHTML = "Atnaujinimas baigtas.";
} Funkcija gali atrodyti puikiai, tačiau joje yra trys nuorodos į visuotinį dokumento objektą. Jei puslapyje yra keli vaizdai, dokumento nuoroda for cikle bus vykdoma kelis ar net šimtus kartų, kiekvieną kartą, kai bus atliekama aprėpties grandinės paieška. Sukūrę vietinį kintamąjį, nukreipiantį į dokumento objektą, galite pagerinti šios funkcijos našumą vieną kartą apribodami visuotinę peržvalgą: funkcija updateUI(){ var doc = dokumentas; var imgs = doc.getElementsByTagName("img"); for (var i=0, len=imgs.length; Aš < len; i++){ imgs[i].title = doc.title + " vaizdas " + i;
} var msg = doc.getElementById("msg"); msg.innerHTML = "Atnaujinimas baigtas."; Čia pirmiausia įdėkite dokumento objektą į vietinį doc kintamąjį; Tada pakeiskite originalų dokumentą likusiu kodu. Palyginti su originalia versija, dabartinė funkcija turi tik vieną visuotinę paiešką, kuri yra tikrai greitesnė. 6. Kitos atsargumo priemonės Vietiniai metodai yra greitesni - Jei įmanoma, naudokite savąjį metodą, o ne patys perrašykite jį naudodami Javascrip{filter}t. Vietinis metodas parašytas kompiliuota kalba, pvz., C/C++, todėl jis yra daug greitesnis nei Javascrip{filter}t. Labiausiai pamirštas dalykas apie Javascrip{filter}t yra sudėtinga matematika, kurią galima rasti matematikos objektuose; Šie metodai yra daug greitesni nei bet kuris kitas metodas, parašytas naudojant Javascrip{filter}t, pvz., sinusas ir kosinusas. Perjungimo sakiniai yra greitesni – jei turite sudėtingų if-else sakinių seriją, galite gauti greitesnį kodą konvertuodami juos į vieną jungiklio sakinį. Taip pat galite dar labiau patobulinti jungiklio sakinį, sutvarkydami atvejo sakinį eilės tvarka nuo labiausiai tikėtino iki mažiausiai tikėtino. Bitų operatoriai yra greitesni – atliekant matematines operacijas, bitų operacijos yra greitesnės nei bet kokios Bulio logikos ar aritmetinės operacijos. Selektyviai pakeitus aritmetines operacijas bitų operacijomis, galima labai pagerinti sudėtingų skaičiavimų našumą. Logika, tokia kaip modulis, logika ir sumos logika, gali būti pakeista bitų operacijomis.
|