Maqheka a 12 a JavaScript ao Lithuto tse ngata li Fetileng
Ha ke qala ho ithuta JavaScript, ntho ea pele eo ke ileng ka e etsa ke ho etsa lethathamo la maqheka a nthusitseng ho boloka nako. Ke li bone ho tsoa ho baetsi ba mananeo a mang, libakeng tse fapaneng le libukeng tsa libuka.
Sehloohong sena, ke tla u bontša mekhoa e 12 e metle ea ho ntlafatsa le ho potlakisa khoutu ea hau ea JavaScript. Maemong a mangata ke bokahohle.
Re hopotsa:bakeng sa babali bohle ba "Habr" - theolelo ea li-ruble tse 10 ha u ngolisa thupelong efe kapa efe ea Skillbox u sebelisa khoutu ea papatso ea "Habr".
Mofuta oa ntho ea Set o ile oa hlahisoa ho ES6, hammoho le ..., opereishene ea phatlalatso, re ka e sebelisa ho theha lethathamo le lecha le nang le litekanyetso tse ikhethang feela.
Boemong bo tloaelehileng, khoutu e ngata e hlokahala ho etsa ts'ebetso e ts'oanang.
Mokhoa ona o sebetsa bakeng sa lihlopha tse nang le mefuta ea khale: e sa hlalosoang, e se nang letho, ea boolean, khoele le nomoro. Haeba u sebetsa ka sehlopha se nang le lintho, mesebetsi, kapa lihlopha tse ling, u tla hloka mokhoa o fapaneng.
Bolelele ba cache array ka lipotoloho
LIEKETSENG
Ha u ithuta ho loops, u latela mokhoa o tloaelehileng:
for (let i = 0; i < array.length; i++){
console.log(i);
}
Leha ho le joalo, ka syntax ena, the for loop e lula e lekola bolelele ba lethathamo nako le nako.
Ka linako tse ling sena se ka ba molemo, empa maemong a mangata ho sebetsa hantle haholo ho boloka bolelele ba sehlopha, e leng se tla hloka phihlello e le 'ngoe ho eona. Re ka etsa sena ka ho hlalosa phapang ea bolelele moo re hlalosang phapang i, ka tsela ena:
for (let i = 0, length = array.length; i < length; i++){
console.log(i);
}
Ha e le hantle, e batla e tšoana le e ka holimo, empa ka ho eketsa boholo ba loop re tla fumana nako ea bohlokoa ea ho boloka nako.
Lintlha tse khutšoane tsa potoloho (Reite ea McCarthy)
LIEKETSENG MEKETSO
ternary operator ke mokhoa o potlakileng le o sebetsang oa ho ngola lipolelo tse nang le maemo tse bonolo ('me ka linako tse ling ha li bonolo hakaalo):
x> 100? “more than 100”: “tlase ho 100”;
x> 100? (x>200? "more than 200": "between 100-200"): "tlase ho 100";
Empa ka linako tse ling esita le opareitara ea ternary e rarahane ho feta kamoo ho hlokahalang. Re ka sebelisa 'le' && le 'kapa' sebakeng sa || Basebelisi ba Boolean ho lekola lipolelo tse itseng ka tsela e khuts'oane le ho feta. Hangata e bitsoa "short circuit" kapa "short circuit rating".
Joang mosebetsing ona
Ha re re re batla ho khutlisa e le 'ngoe feela ea maemo a mabeli kapa ho feta.
Ho sebelisa && ho tla khutlisa boleng ba pele ba bohata. Haeba opereishene ka 'ngoe e lekanya ho 'nete, polelo ea ho qetela e hlahlobiloeng e tla khutlisoa.
let one = 1, two = 2, three = 3;
console.log(one && two && three); // Result: 3
console.log(0 && null); // Result: 0
Ho sebelisa || e tla khutlisa boleng ba pele ba 'nete. Haeba opereishene e 'ngoe le e 'ngoe e sheba ho fosahetse, ho tla khutlisetsoa boleng bo lekantsoeng ba ho qetela.
let one = 1, two = 2, three = 3;
console.log(one || two || three); // Result: 1
console.log(0 || null); // Result: null
mohlala 1
Ha re re re batla ho khutlisa bolelele ba phetoho, empa ha re tsebe mofuta oa eona.
Tabeng ena, o ka sebelisa haeba/ho seng joalo ho lekola hore foo ke mofuta o nepahetseng, empa mokhoa ona o kanna oa ba telele haholo. Ka hona, ho molemo ho nka "potoloho e khutšoanyane" ea rona.
return (foo || []).length;
Haeba foo e feto-fetohang e na le bolelele bo loketseng, joale e tla khutlisoa. Ho seng joalo re tla fumana 0.
mohlala 2
Na u bile le mathata a ho fihlella ntho e hlahisitsoeng? Mohlomong ha u tsebe hore na ntho kapa e 'ngoe ea likaroloana tsa eona e teng,' me sena se ka baka mathata.
Mohlala, re ne re batla ho fumana thepa ea data sebakeng sena.state, empa data ha e hlalosoe ho fihlela lenaneo la rona le tlisa kopo ea ho lata.
Ho ipapisitse le hore na re e sebelisa hokae, ho letsetsa sena.state.data ho ka thibela sesebelisoa ho qala. Ho rarolla bothata, re ka phuthela sena ka polelo e nang le maemo:
Khetho e ntle e ka ba ho sebelisa "kapa" opareitara.
return (this.state.data || 'Fetching Data');
Ha re khone ho fetola khoutu e kaholimo ho sebelisa &&. 'Fetching Data' && this.state.data opareta o tla khutlisa this.state.data ho sa tsotellehe hore na e sa hlalosoa kapa che.
Ketane ea boikhethelo
E mong a ka 'na a etsa tlhahiso ea ho sebelisa ketane ea boikhethelo ha a leka ho khutlisetsa thepa ka hare ho mohaho oa sefate. Kahoo, letšoao la letšoao la potso? e ka sebelisoa ho khutlisa thepa ha feela e se lefeela.
Ka mohlala, re ka fetola mohlala o ka holimo ho fumana sena.state.data?..(). Ke hore, data e khutlisoa feela haeba boleng bo se na letho.
Kapa, haeba ho na le taba hore na boemo bo hlalosoa kapa che, re ka khutlisa data ena.
Fetolela ho Boolean
MOFUTA TS'OHO
Ntle le mesebetsi e tloaelehileng ea boolean e le 'nete le leshano, JavaScript e boetse e nka litekanyetso tse ling kaofela e le' nete kapa leshano.
Ho fihlela ho boletsoe ka tsela e 'ngoe, litekanyetso tsohle tsa JavaScript li nepahetse, ntle le 0, "", ha ho letho, ha li hlalosoe, NaN mme, ehlile, ke leshano. Tse latelang ke tsa bohata.
Re ka fetola habonolo lipakeng tsa tse peli re sebelisa ! opareitara, eo hape e fetolelang mofuta ho boolean.
let int = "15";
int = +int;
console.log(int); // Result: 15
console.log(typeof int); Result: "number"
Mokhoa ona o ka boela oa sebelisoa ho fetolela mofuta oa data oa boolean ho ba boleng bo tloaelehileng ba linomoro, joalo ka ha ho bonts'itsoe ka tlase:
Ho ka 'na ha e-ba le maemo ao ho 'ona + a tla hlalosoa e le opereishene ea concatenation ho e-na le mokhanni oa tlatsetso. Ho qoba sena, o lokela ho sebelisa tildes: ~~. Opereishene ena e lekana le -n-1. Mohlala, ~15 e lekana le -16.
Ho sebelisa li-tilde tse peli ka tatellano ho hana ts'ebetso hobane - (- - n - 1) - 1 = n + 1 - 1 = n. Ka mantsoe a mang, ~-16 e lekana le 15.
Ho qala ka ES7, o ka sebelisa opareitara ea exponentiation ** joalo ka khutsufatso ea matla. Sena se potlakile ho feta ho sebelisa Math.pow(2, 3). E bonahala e le bonolo, empa ntlha ena e kenyelelitsoe lethathamong la mekhoa, kaha ha e boleloe hohle.
console.log(2 ** 3); // Result: 8
Ha ea lokela ho ferekanngoa le letšoao la ^, leo hangata le sebelisoang bakeng sa ho hlalosa. Empa ho JavaScript enoa ke XOR opareitara.
Pele ho ES7, tsela e khuts'oane ea ** e ne e ka sebelisoa feela bakeng sa matla a base 2 ho sebelisoa opareitara ea shift ka ho le letšehali <<:
Math.pow(2, n);
2 << (n - 1);
2**n;
Mohlala, 2 <<3 = 16 e lekana le 2 ** 4 = 16.
Qhoma ho palo kaofela
TS'EBETSO / MOFUTA FETOHA
Ha o hloka ho fetolela float hore e be palo e felletseng, o ka sebelisa Math.floor(), Math.ceil() kapa Math.round(). Empa ho na le tsela e potlakileng, eo re e sebelisang |, ke hore, OR opareitara.
Boitšoaro | e itšetlehile haholo ka hore na u sebetsana le linomoro tse ntle kapa tse mpe, kahoo mokhoa ona o loketse feela haeba u kholisehile ho seo u se etsang.
n | 0 e tlosa ntho e 'ngoe le e 'ngoe ka mor'a karohano ea decimal, e fokotsa float ho palo e feletseng.
U ka fumana phello e ts'oanang ea ho potoloha u sebelisa ~~. Ka mor'a phetoho e qobelloang ho palo e feletseng, boleng bo lula bo sa fetohe.
Ho tlosa linomoro tse latelang
OR opareitara e ka sebelisoa ho tlosa palo efe kapa efe ea linomoro palo. Sena se bolela hore ha ho hlokahale hore re fetole mefuta e kang mona:
let str = "1553";
Number(str.substring(0, str.length - 1));
Lintlha tsa motsu oa ES6 li ka sebelisoa mekhoeng ea sehlopha, 'me ho tlama hoa boleloa. Sena se bolela hore o ka dumedisa dipolelo tse iphetang jwalo ka ena.myMethod = this.myMethod.tlama(ena)!
E ka 'na eaba u se u sebelisitse JSON.stringify. Na u ne u tseba hore e thusa ho fomata JSON ea hau?
Mokhoa oa stringify () o nka mekhahlelo e 'meli ea boikhethelo: mosebetsi o nkelang sebaka, o ka sebelisoang ho sefa JSON e bonts'itsoeng, le boleng ba sebaka.
console.log(JSON.stringify({ alpha: 'A', beta: 'B' }, null, 't'));
// Result:
// '{
// "alpha": A,
// "beta": B
// }'
Ke tsohle, ke tšepa hore mekhoa ena kaofela e ne e le molemo. Ke maqheka afe ao u a tsebang? Li ngole litlhalosong.