Cum coepi discere JavaScript, primum feci feci elenchum praestigiarum quae me adiuvaverunt ut tempus conserves. Eas inde ab aliis programmatibus, in diversis locis et in manualibus conspexi.
In hoc articulo, ostendam tibi 12 vias magnas emendare et accelerare codicem tuum JavaScript. Pleraque universalia sunt.
admonemus;omnibus legentibus "Habr" - discount 10 rublorum cum scribendo in quavis Skillbox utens "Habr" codice promotivo.
Genus objectum quod ES6 inductum est, una cum operante divulgato...., ea uti possumus ad novum ordinem creandum, qui tantum valores singulares continet.
In statu normali, multo magis codice opus est ad eandem operationem perficiendam.
Haec ars opera facit ad formas primitivas continentes: indefinita, nulla, boolean, chorda et numerus. Si cum ordinata opera, quae res, functiones, aut additamenta vestis laboras, alio accessu opus est.
Longitudo cache ordinata in circuitus
CYCLES
Cum discis ansas, modum procedendi sequeris;
for (let i = 0; i < array.length; i++){
console.log(i);
}
Tamen, hac syntaxi, pro fascia identidem coercet longitudinis inter se ordinatae iterationis.
Aliquando hoc potest esse utile, sed in pluribus efficacius est ad cache longitudinem ordinata, quae unum accessum ad eam requiret. Hoc facere possumus definiendo longitudinem variabilem, ubi definimus i variabile, sic:
for (let i = 0, length = array.length; i < length; i++){
console.log(i);
}
Principio, idem fere quod supra, sed augendo amplitudinis ansam significantes temporis peculi habebimus.
Brevis circuitus rating (McCarthy rating)
CONDITIONALIS OPERATORS
Operator ternarius celeris et efficax est modus scribendi simplices (et interdum non ita simplices) conditionales;
x>C? "plus quam C": "minus quam C";
x>C? "plus quam 100": "inter 200-200": "minus quam 100";
Aliquando vero interdum etiam operator ternarius magis multiplex est quam requiritur. Uti possumus 'et' && et 'vel' pro || operarii Booleani ut aliquas expressiones modo pressius perpendant. Saepe "circuitus brevis" vel "brevis ambitus rating" appellatur.
Quam facit hoc opus
Dicamus nos unam tantum duarum vel plurium conditionum reverti velle.
Usura && reddet primum valorem falsum. Si singula operanda vera aestimant, ultima expressio prae- benda reddetur.
let one = 1, two = 2, three = 3;
console.log(one && two && three); // Result: 3
console.log(0 && null); // Result: 0
Usura || reddet primum verum valorem. Si singula operanda falsa aestimant, ultima valor aestimator reddetur.
let one = 1, two = 2, three = 3;
console.log(one || two || three); // Result: 1
console.log(0 || null); // Result: null
exempli gratia 1
Dicamus volumus reverti longitudinis variabilis, sed genus non cognoscimus.
In hoc casu uti potes, si/aliud reprehendo quod foo genus rectum est, sed haec ratio nimis longa est. Ergo melius est "circuitum brevem" accipere.
return (foo || []).length;
Si foo interminabilis longitudinem congruam habet, tunc illa reddetur. Alioquin 0 habebimus.
exempli gratia 2
Have you had problems accessing a nested object? Nescias an objectum vel aliquarum suarum substantiarum existat, et hoc ad problemata ducere potest.
Exempli gratia, notitias rerum in hoc. statu accedere voluimus, sed notitia non definitur donec programmata nostra petitionem arcessant.
Secundum ubi utimur, appellans this.state.data impedimentum applicationis est ut incipias. Ad quaestionem solvendam, hanc expressionem conditionalem involvere poteramus:
Codicem uti && supra mutare non possumus. "Data afferens" && hoc.state.data operante redibit.state.data neglegens utrum indefinita sit necne.
Libitum catenae
Potest quis suggerere utendi ad libitum vinculo cum proprietas alta in arboris structuram reddere conatur. Quaeritur ergo signum symbolum? proprietatem recuperare solitus est, si nulla sit, adhiberi potest.
Exempli gratia potuimus refactorem exemplum superius ad hoc.state.data?..(). Hoc est, data tantum redditur, si valor nullus non est.
Aut, si refert, utrum status definiatur necne, hoc.state?.data reddere possemus.
Convertere ad Boolean
EXEMPLUM CONVERSIONES
Praeter functiones normales booleas veras et falsas, JavaScript etiam de omnibus aliis valoribus veris vel falsis agit.
Donec aliter notetur, omnes valores in JavaScript vera sunt, praeter 0"", nulla, indefinita, NaN et, sane, falsa. Haec falsa sunt.
Facile commutare possumus inter duos operatores utentes, qui etiam genus ad boolean convertit.
- Possunt condiciones ubi + operans concatenatio potius quam operator additus interpretabitur. Hoc evitare debes tildibus: ~~. Auctor hic -n-1. aequivalet. Eg ~15 = -16.
Duobus tildes in versu operationem negat, quia - ( - - n - 1) - 1 = n+1 - 1 = n. Id est, ~-16 = XV.
Incipiens in ES7, uti potes operator exponens ** tamquam notas ad potestates. Hoc multo velocius quam Math.pow usus est (2, 3). Simplex videtur, sed hoc in numero artium ponitur, quia non ubique nominatur.
console.log(2 ** 3); // Result: 8
Non debet confundi cum symbolo^ quod vulgo pro exponendo ponitur. Sed in JavaScript hoc est operator XOR.
Ante ES7, brevis ** tantum pro viribus basi utens 2 operator mutabili utens relicto <<;
Math.pow(2, n);
2 << (n - 1);
2**n;
Exempli gratia 2 << 3 = 16 aequiparatur 2 ** 4 = 16 .
Integer ut supernatet
OPERATIONS / FORMA CONVERSIONE
Si narea ad integrum convertere debes, uti potes Math.floor(), Math.ceil() vel Math.round(). Sed modus est velocior, quo utimur, scilicet OR operante.
ES6 notationes sagittae in methodis classibus adhiberi possunt, et ligamen importatur. Hoc modo dicere potes vale ad expressions repetitas huius modi.myMethod = this.myMethod.bind(hoc)!