Usoro 12 Javascript nke ọtụtụ nkuzi efu efu

Usoro 12 Javascript nke ọtụtụ nkuzi efu efu

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.

Skillbox na-atụ aro: Usoro bara uru "Mobile Developer PRO".

Na-enyocha ụkpụrụ pụrụ iche

ARRAYS

Ewebata ụdị ihe Set na ES6, yana..., onye na-ahụ maka mgbasa ozi, anyị nwere ike iji ya mepụta usoro ọhụrụ nke nwere naanị ụkpụrụ pụrụ iche.

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

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

x> 100? "ihe karịrị 100": "ihe na-erughị 100";
x> 100? (x>200? "ihe karịrị 200": "n'etiti 100-200"): "ihe na-erughị 100";

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:

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

Nhọrọ kacha mma ga-abụ iji onye ọrụ "ma ọ bụ".

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

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.

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

Tụgharịa na eriri

Ngbanwe ụdị

Enwere ike ịme mgbanwe ngwa ngwa site na integer gaa na eriri dị ka ndị a.

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

Tụgharịa ka ọ bụrụ ọnụọgụgụ

Ngbanwe ụdị

Anyị na-eme mgbanwe mgbanwe dị ka nke a.

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

Enwere ike iji usoro a iji gbanwee ụdị data boolean ka ọ bụrụ ụkpụrụ ọnụọgụ oge niile, dịka egosiri n'okpuru:

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

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.

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

<Quick Powers

Ọrụ

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.

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

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

Kama anyị na-ede naanị:

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

Njikọ akpaaka

Klas

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

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>
      </>
    )
  }
};

Nhazi nhazi

ARRAYS

Ọ bụrụ na ịchọrọ iwepụ ụkpụrụ n'usoro, enwere ụzọ ngwa ngwa karịa splice ().

Dịka ọmụmaatụ, ọ bụrụ na ịmara nha nke nhazi mbụ ahụ, ị ​​nwere ike ịkagbu ihe ogologo ya dị ka ndị a:

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

Ma enwere usoro ọzọ, yana ngwa ngwa. Ọ bụrụ na ọsọ bụ ihe dị gị mkpa, ebe a bụ nhọrọ anyị:

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]

Na-ebipụta uru(s) ikpeazụ nke nhazi

ARRAYS
Usoro a chọrọ iji usoro iberi () mee ihe.

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]

Na-ahazi Koodu JSON

JSON

O nwere ike ịbụ na ị jirila JSON.stringify. Ị maara na ọ na-enyere aka ịhazi JSON gị?

Usoro stringify () na-ewe oke nhọrọ abụọ: ọrụ nnọchi, nke enwere ike iji nyochaa JSON gosipụtara, yana uru oghere.

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

Nke ahụ bụ naanị, enwere m olileanya na usoro ndị a niile bara uru. Kedu aghụghọ ị maara? Dee ha na nkọwa.

Skillbox na-atụ aro:

isi: www.habr.com

Tinye a comment