12 JavaScript Furta Most Tutorials Miss

12 JavaScript Furta Most Tutorials Miss

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.

Skillbox commendat: Cursus practicus "Mobile Developer PRO".

Singulares eliquare valores

Arrays

Genus objectum quod ES6 inductum est, una cum operante divulgato...., ea uti possumus ad novum ordinem creandum, qui tantum valores singulares continet.

const array = [1, 1, 2, 3, 5, 5, 1]
const uniqueArray = [...new Set(array)];
 
console.log(uniqueArray); // Result: [1, 2, 3, 5]

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:

if (this.state.data) {
  return this.state.data;
} else {
  return 'Fetching Data';
}

Melior optio esset uti "vel" operante.

return (this.state.data || 'Fetching Data');

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.

const isTrue  = !0;
const isFalse = !1;
const alsoFalse = !!0;
 
console.log(true); // Result: true
console.log(typeof true); // Result: "boolean"

Convertere ad filum

EXEMPLUM CONVERSIONES

Fieri potest ut sequitur velox conversio ab integro ad chordum.

const val = 1 + "";
 
console.log(val); // Result: "1"
console.log(typeof val); // Result: "string"

Conversus ad integer

EXEMPLUM CONVERSIONES

Inversa transmutatio sic facimus.

let int = "15";
int = +int;
 
console.log(int); // Result: 15
console.log(typeof int); Result: "number"

Haec methodus adhiberi potest etiam ad notitias booleas convertendas ad valores numericos regulares, de quibus infra:

console.log(+true);  // Return: 1
console.log(+false); // Return: 0

- 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.

const int = ~~"15"
console.log(int); // Result: 15
console.log(typeof int); Result: "number"

<Quick Powers

OPERATIONS

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.

console.log(23.9 | 0);  // Result: 23
console.log(-23.9 | 0); // Result: -23

Mores | late pendet num de numeris positivis vel negativis agas, quare haec methodus tantum est idonea, si quid agas confidas.

n | 0 removet omnia post separator decimales, innatant ad integrum truncato.

Idem efficere potes utendo ~~. Post conversionem coactus ad integrum, valor immutatus manet.

Removere aegra numero

OR operator adhiberi potest ad quemlibet numerum digitorum e numero removendum. Hoc significat non opus est ut hic rationes convertamus:

let str = "1553";
Number(str.substring(0, str.length - 1));

Pro simpliciter scribimus;

console.log(1553 / 10   | 0)  // Result: 155
console.log(1553 / 100  | 0)  // Result: 15
console.log(1553 / 1000 | 0)  // Result: 1

Vinculum automatic

CLASSES

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)!

import React, { Component } from React;
 
export default class App extends Compononent {
  constructor(props) {
  super(props);
  this.state = {};
  }
 
myMethod = () => {
    // This method is bound implicitly!
  }
 
render() {
    return (
      <>
        <div>
          {this.myMethod()}
        </div>
      </>
    )
  }
};

Ordinare tondet

Arrays

Si valores ex agmine spoliare debes, modi sunt velociores quam splice ().

Exempli gratia, si magnitudinem primi ordinatam scias, longitudo eius proprietas potest subiicere sic:

let array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
array.length = 4;
 
console.log(array); // Result: [0, 1, 2, 3]

Sed alius modus est, et velocior. Si celeritas quid refert ad te, hic sunt claviculi nostri;

let array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
array = array.slice(0, 4);
 
console.log(array); // Result: [0, 1, 2, 3]

Ultimum valorem imprimendi (s) ordinatae

Arrays
Haec ars usum segmenti () methodi requirit.

let array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
 
console.log(array.slice(-1)); // Result: [9]
console.log(array.slice(-2)); // Result: [8, 9]
console.log(array.slice(-3)); // Result: [7, 8, 9]

Formatting JSON Code

JSON

JSON.stringify iam licet. Scisne te iuvat formare tuum JSON?

Modus stringendum () duos parametri ad libitum sumit: substitutor functionis, quae ad JSON exhibitum eliquare potest, et spatium pretii.

console.log(JSON.stringify({ alpha: 'A', beta: 'B' }, null, 't'));
 
// Result:
// '{
//     "alpha": A,
//     "beta": B
// }'

Haec omnia, ut spero, omnes hae artes utiles fuerunt. Quas cautelas scis? Eas in commentarios scribe.

Skillbox commendat:

Source: www.habr.com