Mgbe m malitere ịmụ Javascript, ihe mbụ m mere bụ ịmepụta ndepụta aghụghọ ndị nyeere m aka ịchekwa oge. Ahụrụ m ha site na ndị mmemme ndị ọzọ, na saịtị dị iche iche na akwụkwọ ntuziaka.
N'isiokwu a, m ga-egosi gị ụzọ 12 dị mma iji melite ma mee ka koodu Javascript gị dị ngwa. N'ọtụtụ ọnọdụ ha bụ eluigwe na ala.
Anyị na -echetara:maka ndị na-agụ Habr niile - ego 10 ruble mgbe ị na-edebanye aha na nkuzi Skillbox ọ bụla site na iji koodu mgbasa ozi Habr.
N'ọnọdụ nkịtị, achọrọ ọtụtụ koodu iji rụọ otu ọrụ ahụ.
Usoro a na-arụ ọrụ maka nhazi nke nwere ụdị ochie: enweghị nkọwa, efu, boolean, eriri na nọmba. Ọ bụrụ na ị na-arụ ọrụ n'usoro nwere ihe, ọrụ, ma ọ bụ nhazi agbakwunyere, ị ga-achọ ụzọ dị iche.
Ogologo cache n'usoro na okirikiri
ỌKỤKWUO
Mgbe ị na-amụta maka loops, ị na-agbaso usoro ọkọlọtọ:
for (let i = 0; i < array.length; i++){
console.log(i);
}
Otú ọ dị, site na syntax a, maka loop na-enyocha ogologo oge nke nhazi ọ bụla ugboro ugboro.
Mgbe ụfọdụ, nke a nwere ike ịba uru, ma n'ọtụtụ ọnọdụ, ọ na-arụ ọrụ nke ọma iji chekwaa ogologo ogologo nke nhazi ahụ, nke ga-achọ ka ịnweta ya. Anyị nwere ike ime nke a site n'ịkọwa ogologo mgbanwe ogologo ebe anyị na-akọwapụta mgbanwe i, dịka nke a:
for (let i = 0, length = array.length; i < length; i++){
console.log(i);
}
Na ụkpụrụ, ihe fọrọ nke nta ka ọ bụrụ otu ihe ahụ dị n'elu, ma site n'ịba ụba nke akaghị aka, anyị ga-enweta nchekwa oge dị ịrịba ama.
Ogo sekit dị mkpụmkpụ (nkọwa McCarthy)
Ndị na-arụ ọrụ ọnọdụ
Onye na-arụ ọrụ ternary bụ ụzọ dị ngwa ma dịkwa mma iji dee nkwupụta ọnọdụ dị mfe (ma mgbe ụfọdụ ọ naghị adị mfe):
Ma mgbe ụfọdụ ọbụna onye ọrụ ternary na-agbagwoju anya karịa ka achọrọ. Anyị nwere ike iji 'na' && na 'ma ọ bụ' kama || Ndị na-arụ ọrụ Boolean na-enyocha ụfọdụ okwu n'ụzọ dị nkenke karịa. A na-akpọkarị ya "obere sekit" ma ọ bụ "oke sekit dị mkpirikpi".
Olee otú nke a na-arụ ọrụ
Ka anyị kwuo na anyị chọrọ ịlaghachi naanị otu n'ime ọnọdụ abụọ ma ọ bụ karịa.
Iji && ga-eweghachi uru ụgha mbụ. Ọ bụrụ na operand nke ọ bụla na-atụle ka ọ bụrụ eziokwu, mgbe ahụ a ga-eweghachi okwu ikpeazụ enyochara.
let one = 1, two = 2, three = 3;
console.log(one && two && three); // Result: 3
console.log(0 && null); // Result: 0
Iji || ga-eweghachite ezi uru nke mbụ. Ọ bụrụ na operand ọ bụla tụlere na ụgha, mgbe ahụ a ga-eweghachi uru ikpeazụ enyochara.
let one = 1, two = 2, three = 3;
console.log(one || two || three); // Result: 1
console.log(0 || null); // Result: null
atụ 1
Ka anyị kwuo na anyị chọrọ ịlaghachi ogologo nke mgbanwe, mana anyị amaghị ụdị ya.
N'okwu a, ịnwere ike iji ma ọ bụrụ / ọzọ lelee na foo bụ ụdị ziri ezi, mana usoro a nwere ike ịdị ogologo. Ya mere, ọ ka mma iji "obere sekit" anyị.
return (foo || []).length;
Ọ bụrụ na foo variable nwere ogologo kwesịrị ekwesị, mgbe ahụ, a ga-eweghachi ya. Ma ọ bụghị ya, anyị ga-enweta 0.
atụ 2
Ị nweela nsogbu ịnweta ihe akwụgoro akwụrụ? Ị nwere ike ịmaghị ma ihe ma ọ bụ otu n'ime ihe onwunwe ya dị, nke a nwere ike ịkpata nsogbu.
Dịka ọmụmaatụ, anyị chọrọ ịnweta akụrụngwa data na steeti a, mana akọwaghị data ruo mgbe mmemme anyị weghachiri arịrịọ mbubata.
Dabere na ebe anyị na-eji ya, ịkpọ this.state.data nwere ike igbochi ngwa ịmalite. Iji dozie nsogbu ahụ, anyị nwere ike kechie nke a n'ụdị okwu:
Anyị enweghị ike ịgbanwe koodu dị n'elu iji &&. Onye ọrụ 'Fetching Data' && this.state.data ga-eweghachite this.state.data n'agbanyeghị ma akọwapụtaghị ya ma ọ bụ na ọ bụghị.
yinye nhọrọ
Mmadụ nwere ike ịtụ aro iji ụdọ nhọrọ mgbe ị na-agbalị iweghachi ihe onwunwe n'ime n'ime ihe owuwu osisi. Yabụ, akara akara ajụjụ? enwere ike iji nwetaghachi ihe naanị ma ọ bụrụ na ọ bụghị ihe efu.
Dịka ọmụmaatụ, anyị nwere ike megharịa ihe atụ dị n'elu iji nweta nke a.state.data?...(). Ya bụ, a na-eweghachi data naanị ma ọ bụrụ na uru ahụ abụghị efu.
Ma ọ bụ, ọ bụrụ na ọ dị mkpa ma akọwapụtara steeti ma ọ bụ na ọ bụghị, anyị nwere ike iweghachite data a.state?.
Tụgharịa na Boolean
Ngbanwe ụdị
Na mgbakwunye na ọrụ boolean nkịtị bụ eziokwu na ụgha, Javascript na-ewerekwa ụkpụrụ ndị ọzọ niile dị ka eziokwu ma ọ bụ ụgha.
Ruo mgbe ekwuputara n'ụzọ ọzọ, ụkpụrụ niile dị na Javascript bụ eziokwu, ewezuga 0, "", null, undefined, NaN na, n'ezie, ụgha. Nke ikpeazụ bụ ụgha.
Anyị nwere ike ịgbanwe n'etiti ha abụọ n'ụzọ dị mfe site na iji onye ọrụ !, nke na-atụgharịkwa ụdị ahụ ka ọ bụrụ boolean.
Enwere ike ịnwe ọnọdụ ebe + ga-atụgharị ya dị ka onye na-ahụ maka njikọta karịa onye ọrụ mgbakwunye. Iji zere nke a, ị ga-eji tildes: ~~. Onye ọrụ a bụ -n-1. Dịka ọmụmaatụ, ~ 15 hà nhata -16.
Iji tildes abụọ n'usoro na-egbochi ọrụ ahụ n'ihi na - (- - n - 1) - 1 = n + 1 - 1 = n. N'ikwu ya n'ụzọ ọzọ, ~-16 hà nhata 15.
Malite na ES7, ị nwere ike iji onye na-ahụ maka nkọwapụta ** dị ka aka mkpirisi maka ike. Nke a dị ngwa ngwa karịa iji Math.pow(2, 3). O yiri ka ọ dị mfe, ma isi ihe a gụnyere na ndepụta nke usoro, ebe ọ bụ na a naghị akpọ ya ebe niile.
console.log(2 ** 3); // Result: 8
O kwesịghị inwe mgbagwoju anya na akara ^, nke a na-ejikarị akọwa nkọwa. Mana na Javascript nke a bụ onye ọrụ XOR.
Tupu ES7, enwere ike iji ụzọ mkpirisi ** naanị maka ike nke isi 2 site na iji onye na-ahụ maka mgbanwe aka ekpe bitwise <<:
Math.pow(2, n);
2 << (n - 1);
2**n;
Dịka ọmụmaatụ, 2 << 3 = 16 bụ 2 ** 4 = 16.
Fee n'elu ka integer
Ngbanwe ọrụ/Ụdị Ngbanwe
Ọ bụrụ na ịchọrọ ịtụgharị n'elu mmiri ka ọ bụrụ integer, ịnwere ike iji Math.floor(), Math.ceil() ma ọ bụ Math.round(). Mana enwere ụzọ dị ngwa ngwa, maka nke a anyị na-eji |, ya bụ, onye ọrụ OR.
Omume | dabere n'ụzọ dị ukwuu ma ị na-emeso ọnụọgụ dị mma ma ọ bụ na-adịghị mma, yabụ usoro a dabara adaba naanị ma ọ bụrụ na ị nwere ntụkwasị obi n'ihe ị na-eme.
n | 0 na-ewepụ ihe niile mgbe ihe nkesa decimal gasịrị, na-akụda sere n'elu mmiri na integer.
Ị nwere ike nweta otu mmetụta okirikiri site na iji ~~. Mgbe ntughari mmanye gaa na integer, uru ya na-agbanwe agbanwe.
Na-ewepụ nọmba ndị na-eso ụzọ
Enwere ike iji onye na-ahụ maka OR wepụ ọnụọgụ ọnụọgụ ọ bụla na ọnụọgụ. Nke a pụtara na anyị achọghị ịtụgharị ụdị dị ka ebe a:
let str = "1553";
Number(str.substring(0, str.length - 1));
Enwere ike iji akara akụ ES6 na usoro klaasị, yana ijikọ pụtara. Nke a pụtara na ị nwere ike ịsị nke ọma na okwu ugboro ugboro dị ka nke a.myMethod = this.myMethod.bind(nke a)!