12 ื˜ืจื™ืงื™ื ืฉืœ JavaScript ืฉืจื•ื‘ ื”ื”ื“ืจื›ื•ืช ืžืคืกืคืกื™ื

12 ื˜ืจื™ืงื™ื ืฉืœ JavaScript ืฉืจื•ื‘ ื”ื”ื“ืจื›ื•ืช ืžืคืกืคืกื™ื

ื›ืฉื”ืชื—ืœืชื™ ืœืœืžื•ื“ JavaScript, ื”ื“ื‘ืจ ื”ืจืืฉื•ืŸ ืฉืขืฉื™ืชื™ ื”ื™ื” ืœื”ื›ื™ืŸ ืจืฉื™ืžื” ืฉืœ ื˜ืจื™ืงื™ื ืฉืขื–ืจื• ืœื™ ืœื—ืกื•ืš ื–ืžืŸ. ื–ื™ื”ื™ืชื™ ืื•ืชื ืžืชื›ื ืชื™ื ืื—ืจื™ื, ื‘ืืชืจื™ื ืฉื•ื ื™ื ื•ื‘ืžื“ืจื™ื›ื™ื.

ื‘ืžืืžืจ ื–ื”, ืื ื™ ืืจืื” ืœืš 12 ื“ืจื›ื™ื ื ื”ื“ืจื•ืช ืœืฉืคืจ ื•ืœื”ืื™ืฅ ืืช ืงื•ื“ ื”-JavaScript ืฉืœืš. ื‘ืจื•ื‘ ื”ืžืงืจื™ื ื”ื ืื•ื ื™ื‘ืจืกืœื™ื™ื.

ืื ื• ืžื–ื›ื™ืจื™ื: ืœื›ืœ ืงื•ืจืื™ Habr - ื”ื ื—ื” ืฉืœ 10 ืจื•ื‘ืœ ื‘ืขืช ื”ืจืฉืžื” ืœื›ืœ ืงื•ืจืก Skillbox ื‘ืืžืฆืขื•ืช ืงื•ื“ ื”ื”ื˜ื‘ื” ืฉืœ Habr.

Skillbox ืžืžืœื™ืฆื”: ืงื•ืจืก ืžืขืฉื™ "Mobile Developer PRO".

ืกื™ื ื•ืŸ ืขืจื›ื™ื ื™ื™ื—ื•ื“ื™ื™ื

ืžืขืจื›ื™ื

ืกื•ื’ ื”ืื•ื‘ื™ื™ืงื˜ ื”ื•ืฆื’ ื‘-ES6, ื™ื—ื“ ืขื ื”ืื•ืคืจื˜ื•ืจ..., ื”ืชืคืฉื˜ื•ืช, ื ื•ื›ืœ ืœื”ืฉืชืžืฉ ื‘ื• ื›ื“ื™ ืœื™ืฆื•ืจ ืžืขืจืš ื—ื“ืฉ ื”ืžื›ื™ืœ ืจืง ืขืจื›ื™ื ื™ื™ื—ื•ื“ื™ื™ื.

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

ื‘ืžืฆื‘ ืจื’ื™ืœ, ื™ืฉ ืฆื•ืจืš ื‘ื”ืจื‘ื” ื™ื•ืชืจ ืงื•ื“ ื›ื“ื™ ืœื‘ืฆืข ืืช ืื•ืชื” ืคืขื•ืœื”.

ื˜ื›ื ื™ืงื” ื–ื• ืคื•ืขืœืช ืขื‘ื•ืจ ืžืขืจื›ื™ื ื”ืžื›ื™ืœื™ื ื˜ื™ืคื•ืกื™ื ืคืจื™ืžื™ื˜ื™ื‘ื™ื™ื: ืœื ืžื•ื’ื“ืจ, null, ื‘ื•ืœื™ืื ื™, ืžื—ืจื•ื–ืช ื•ืžืกืคืจ. ืื ืืชื” ืขื•ื‘ื“ ืขื ืžืขืจืš ื”ืžื›ื™ืœ ืื•ื‘ื™ื™ืงื˜ื™ื, ืคื•ื ืงืฆื™ื•ืช ืื• ืžืขืจื›ื™ื ื ื•ืกืคื™ื, ืชืฆื˜ืจืš ื’ื™ืฉื” ืื—ืจืช.

ืื•ืจืš ืžืขืจืš ื”ืžื˜ืžื•ืŸ ื‘ืžื—ื–ื•ืจื™ื

ืžื—ื–ื•ืจื™ื

ื›ืืฉืจ ืืชื” ืœื•ืžื“ ืขื‘ื•ืจ ืœื•ืœืื•ืช, ืืชื” ืคื•ืขืœ ืœืคื™ ื”ื ื•ื”ืœ ื”ืกื˜ื ื“ืจื˜ื™:

for (let i = 0; i < array.length; i++){
  console.log(i);
}

ืขื ื–ืืช, ืขื ืชื—ื‘ื™ืจ ื–ื”, ืœื•ืœืืช for ื‘ื•ื“ืงืช ืฉื•ื‘ ื•ืฉื•ื‘ ืืช ืื•ืจืš ื”ืžืขืจืš ื‘ื›ืœ ืื™ื˜ืจืฆื™ื”.

ืœืคืขืžื™ื ื–ื” ื™ื›ื•ืœ ืœื”ื™ื•ืช ืฉื™ืžื•ืฉื™, ืื‘ืœ ื‘ืจื•ื‘ ื”ืžืงืจื™ื ื™ืขื™ืœ ื™ื•ืชืจ ืœืฉืžื•ืจ ืืช ืื•ืจืš ื”ืžืขืจืš ื‘ืžื˜ืžื•ืŸ, ืžื” ืฉื™ื“ืจื•ืฉ ื’ื™ืฉื” ืื—ืช ืืœื™ื•. ื ื•ื›ืœ ืœืขืฉื•ืช ื–ืืช ืขืœ ื™ื“ื™ ื”ื’ื“ืจืช ืžืฉืชื ื” ืื•ืจืš ืฉื‘ื• ื ื’ื“ื™ืจ ืืช ื”ืžืฉืชื ื” i, ื›ืš:

for (let i = 0, length = array.length; i < length; i++){
  console.log(i);
}

ื‘ืื•ืคืŸ ืขืงืจื•ื ื™, ื›ืžืขื˜ ื›ืžื• ืœืขื™ืœ, ืื‘ืœ ืขืœ ื™ื“ื™ ื”ื’ื“ืœืช ื’ื•ื“ืœ ื”ืœื•ืœืื” ื ืงื‘ืœ ื—ื™ืกื›ื•ืŸ ืžืฉืžืขื•ืชื™ ื‘ื–ืžืŸ.

ื“ื™ืจื•ื’ ืงืฆืจ ื—ืฉืžืœื™ (ื“ื™ืจื•ื’ ืžืงืืจืชื™)

ืžืคืขื™ืœื™ื ืžื•ืชื ื™ื

ื”ืื•ืคืจื˜ื•ืจ ื”ืฉืœื™ืฉื•ื ื™ ื”ื•ื ื“ืจืš ืžื”ื™ืจื” ื•ื™ืขื™ืœื” ืœื›ืชื•ื‘ ื”ืฆื”ืจื•ืช ืžื•ืชื ื™ื•ืช ืคืฉื•ื˜ื•ืช (ื•ืœืคืขืžื™ื ืœื ื›ืœ ื›ืš ืคืฉื•ื˜ื•ืช):

x> 100? "ื™ื•ืชืจ ืž-100": "ืคื—ื•ืช ืž-100";
x> 100? (x>200? "ื™ื•ืชืจ ืž-200": "ื‘ื™ืŸ 100-200"): "ืคื—ื•ืช ืž-100";

ืื‘ืœ ืœืคืขืžื™ื ืืคื™ืœื• ื”ืื•ืคืจื˜ื•ืจ ื”ืฉืœื™ืฉื•ื ื™ ืžืกื•ื‘ืš ื™ื•ืชืจ ืžื”ื ื“ืจืฉ. ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœื”ืฉืชืžืฉ ื‘-'and' && ื•-'ืื•' ื‘ืžืงื•ื || ืื•ืคืจื˜ื•ืจื™ื ื‘ื•ืœื™ืื ื™ื™ื ืœื”ืขืจื›ืช ื‘ื™ื˜ื•ื™ื™ื ืžืกื•ื™ืžื™ื ื‘ืฆื•ืจื” ืชืžืฆื™ืชื™ืช ืขื•ื“ ื™ื•ืชืจ. ื–ื” ื ืงืจื ืœืขืชื™ื ืงืจื•ื‘ื•ืช "ืงืฆืจ ื—ืฉืžืœื™" ืื• "ื“ื™ืจื•ื’ ืงืฆืจ ื—ืฉืžืœื™".

ืึตื™ืš ืžึทืคืขึดื™ืœึดื™ื ืึถืช ื–ึถื”

ื ื ื™ื— ืฉืื ื• ืจื•ืฆื™ื ืœื”ื—ื–ื™ืจ ืจืง ืื—ื“ ืžืฉื ื™ ืชื ืื™ื ืื• ื™ื•ืชืจ.

ืฉื™ืžื•ืฉ ื‘-&& ื™ื—ื–ื™ืจ ืืช ื”ืขืจืš ื”ืฉืงืจื™ ื”ืจืืฉื•ืŸ. ืื ื›ืœ ืื•ืคืจื ื“ ืžื•ืขืจืš ื›-true, ืื– ื”ื‘ื™ื˜ื•ื™ ื”ืื—ืจื•ืŸ ืฉื”ื•ืขืจืš ื™ื•ื—ื–ืจ.

let one = 1, two = 2, three = 3;
console.log(one && two && three); // Result: 3
 
console.log(0 && null); // Result: 0

ื‘ืืžืฆืขื•ืช || ื™ื—ื–ื™ืจ ืืช ื”ืขืจืš ื”ืืžื™ืชื™ ื”ืจืืฉื•ืŸ. ืื ื›ืœ ืื•ืคืจื ื“ ืžื•ืขืจืš ืœ-false, ืื– ื”ืขืจืš ื”ืžื•ืขืจืš ื”ืื—ืจื•ืŸ ื™ื•ื—ื–ืจ.

let one = 1, two = 2, three = 3;
console.log(one || two || three); // Result: 1
 
console.log(0 || null); // Result: null

ื“ื•ื’ืžื 1

ื ื ื™ื— ืฉืื ื—ื ื• ืจื•ืฆื™ื ืœื”ื—ื–ื™ืจ ืืช ื”ืื•ืจืš ืฉืœ ืžืฉืชื ื”, ืื‘ืœ ืื ื—ื ื• ืœื ื™ื•ื“ืขื™ื ืืช ืกื•ื’ื•.

ื‘ืžืงืจื” ื–ื”, ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘-if/else ื›ื“ื™ ืœื‘ื“ื•ืง ืฉ-foo ื”ื•ื ื”ืกื•ื’ ื”ื ื›ื•ืŸ, ืื‘ืœ ืฉื™ื˜ื” ื–ื• ืขืฉื•ื™ื” ืœื”ื™ื•ืช ืืจื•ื›ื” ืžื“ื™. ืœื›ืŸ, ืขื“ื™ืฃ ืœืงื—ืช ืืช ื”"ืงืฆืจ ื—ืฉืžืœื™" ืฉืœื ื•.

return (foo || []).length;

ืื ืœ-foo ื”ืžืฉืชื ื” ื™ืฉ ืื•ืจืš ืžืชืื™ื, ืื– ื–ื” ื™ื•ื—ื–ืจ. ืื—ืจืช ื ืงื‘ืœ 0.

ื“ื•ื’ืžื 2

ื”ืื ื ืชืงืœืช ื‘ื‘ืขื™ื•ืช ื‘ื’ื™ืฉื” ืœืื•ื‘ื™ื™ืงื˜ ืžืงื•ื ืŸ? ื™ื™ืชื›ืŸ ืฉืื™ื ืš ื™ื•ื“ืข ืื ืงื™ื™ื ืื•ื‘ื™ื™ืงื˜ ืื• ืื—ื“ ืžืžืืคื™ื™ื ื™ ื”ืžืฉื ื” ืฉืœื•, ื•ื”ื“ื‘ืจ ืขืœื•ืœ ืœื”ื•ื‘ื™ืœ ืœื‘ืขื™ื•ืช.

ืœื“ื•ื’ืžื”, ืจืฆื™ื ื• ืœื’ืฉืช ืœืžืืคื™ื™ืŸ ื”ื ืชื•ื ื™ื ื‘- this.state, ืืš ื ืชื•ื ื™ื ืื™ื ื ืžื•ื’ื“ืจื™ื ืขื“ ืฉื”ืชื•ื›ื ื™ืช ืฉืœื ื• ืชื—ื–ื™ืจ ื‘ืงืฉืช ืื—ื–ื•ืจ.

ื‘ื”ืชืื ืœืžืงื•ื ืฉื‘ื• ืื ื• ืžืฉืชืžืฉื™ื ื‘ื•, ืงืจื™ืืช this.state.data ืขืฉื•ื™ื” ืœืžื ื•ืข ืืช ื”ืคืขืœืช ื”ืืคืœื™ืงืฆื™ื”. ื›ื“ื™ ืœืคืชื•ืจ ืืช ื”ื‘ืขื™ื”, ื ื•ื›ืœ ืœืขื˜ื•ืฃ ืืช ื–ื” ื‘ื‘ื™ื˜ื•ื™ ืžื•ืชื ื”:

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

ืืคืฉืจื•ืช ื˜ื•ื‘ื” ื™ื•ืชืจ ืชื”ื™ื” ืœื”ืฉืชืžืฉ ื‘ืื•ืคืจื˜ื•ืจ "ืื•".

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

ืื ื—ื ื• ืœื ื™ื›ื•ืœื™ื ืœืฉื ื•ืช ืืช ื”ืงื•ื“ ืฉืœืžืขืœื” ื›ื“ื™ ืœื”ืฉืชืžืฉ ื‘-&&. ื”ืžืคืขื™ืœ 'ืžืฉื—ื–ืจ ื ืชื•ื ื™ื' && this.state.data ื™ื—ื–ื™ืจ ืืช this.state.data ืœืœื ืงืฉืจ ืื ื”ื ืœื ืžื•ื’ื“ืจื™ื ืื• ืœื.

ืฉืจืฉืจืช ืื•ืคืฆื™ื•ื ืœื™ืช

ืืคืฉืจ ืœื”ืฆื™ืข ืœื”ืฉืชืžืฉ ื‘ืฉืจืฉื•ืจ ืื•ืคืฆื™ื•ื ืœื™ ื›ืืฉืจ ืžื ืกื™ื ืœื”ื—ื–ื™ืจ ื ื›ืก ืขืžื•ืง ืœืชื•ืš ืžื‘ื ื” ืขืฅ. ืื–, ืกืžืœ ืกื™ืžืŸ ื”ืฉืืœื”? ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื›ื“ื™ ืœืื—ื–ืจ ื ื›ืก ืจืง ืื ื”ื•ื ืœื ืจื™ืง.

ืœื“ื•ื’ืžื”, ื ื•ื›ืœ ืœืฉื ื•ืช ืืช ื”ื“ื•ื’ืžื” ืฉืœืžืขืœื” ื›ื“ื™ ืœืงื‘ืœ this.state.data?..(). ื›ืœื•ืžืจ, ื”ื ืชื•ื ื™ื ืžื•ื—ื–ืจื™ื ืจืง ืื ื”ืขืจืš ืื™ื ื• null.

ืœื—ืœื•ืคื™ืŸ, ืื ื–ื” ืžืฉื ื” ืื ื”ืžื“ื™ื ื” ืžื•ื’ื“ืจืช ืื• ืœื, ื ื•ื›ืœ ืœื”ื—ื–ื™ืจ ืืช this.state?.data.

ื”ืžืจ ืœื‘ื•ืœื™ืื ื™ืช

ื”ืžืจืช ืกื•ื’

ื‘ื ื•ืกืฃ ืœืคื•ื ืงืฆื™ื•ืช ื”ื‘ื•ืœื™ืื ื™ื•ืช ื”ืจื’ื™ืœื•ืช ืืžืช ื•ืฉืงืจ, JavaScript ืžืชื™ื™ื—ืก ื’ื ืœื›ืœ ืฉืืจ ื”ืขืจื›ื™ื ื›ืืœ ืืžืช ืื• ื›ื•ื–ื‘.

ืขื“ ืฉื™ืฆื•ื™ืŸ ืื—ืจืช, ื›ืœ ื”ืขืจื›ื™ื ื‘-JavaScript ื”ื ืืžืช, ืœืžืขื˜ 0, "", null, undefined, NaN ื•ื›ืžื•ื‘ืŸ ืฉืงืจ. ื”ืื—ืจื•ื ื™ื ืžื–ื•ื™ืคื™ื.

ืื ื• ื™ื›ื•ืœื™ื ืœืขื‘ื•ืจ ื‘ืงืœื•ืช ื‘ื™ืŸ ื”ืฉื ื™ื™ื ื‘ืืžืฆืขื•ืช ื”ืื•ืคืจื˜ื•ืจ !, ืฉื’ื ืžืžื™ืจ ืืช ื”ืกื•ื’ ืœื‘ื•ืœื™ืื ื™ืช.

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

ื”ืžืจ ืœืžื—ืจื•ื–ืช

ื”ืžืจืช ืกื•ื’

ื”ืžืจื” ืžื”ื™ืจื” ืžืžืกืคืจ ืฉืœื ืœืžื—ืจื•ื–ืช ื™ื›ื•ืœื” ืœื”ืชื‘ืฆืข ื‘ืื•ืคืŸ ื”ื‘ื.

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

ื”ืžืจ ืœืžืกืคืจ ืฉืœื

ื”ืžืจืช ืกื•ื’

ืื ื• ืžื‘ืฆืขื™ื ืืช ื”ื˜ืจื ืกืคื•ืจืžืฆื™ื” ื”ื”ืคื•ื›ื” ื›ืš.

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

ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืฉื™ื˜ื” ื–ื• ื’ื ื›ื“ื™ ืœื”ืžื™ืจ ืืช ืกื•ื’ ื”ื ืชื•ื ื™ื ื”ื‘ื•ืœื™ืื ื™ื™ื ืœืขืจื›ื™ื ืžืกืคืจื™ื™ื ืจื’ื™ืœื™ื, ื›ืคื™ ืฉืžื•ืฆื’ ืœื”ืœืŸ:

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

ื™ื™ืชื›ื ื• ืžืฆื‘ื™ื ืฉื‘ื”ื + ื™ืชืคืจืฉ ื›ืื•ืคืจื˜ื•ืจ ืฉืจืฉื•ืจ ื•ืœื ื›ืื•ืคืจื˜ื•ืจ ื—ื™ื‘ื•ืจ. ื›ื“ื™ ืœื”ื™ืžื ืข ืžื›ืš, ืขืœื™ืš ืœื”ืฉืชืžืฉ ื‘ื˜ื™ืœื“ื•ืช: ~~. ืื•ืคืจื˜ื•ืจ ื–ื” ืฉื•ื•ื” ืขืจืš ืœ-n-1. ืœื“ื•ื’ืžื”, ~15 ืฉื•ื•ื” ืœ-16.

ืฉื™ืžื•ืฉ ื‘ืฉืชื™ ื˜ื™ืœื“ื•ืช ื‘ืฉื•ืจื” ืฉื•ืœืœ ืืช ื”ืคืขื•ืœื” ืžื›ื™ื•ื•ืŸ ืฉ- (- - n - 1) - 1 = n + 1 - 1 = n. ื‘ืžื™ืœื™ื ืื—ืจื•ืช, ~-16 ืฉื•ื•ื” ืœ-15.

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

<Quick Powers

ืคืขื•ืœื•ืช

ื”ื—ืœ ืž-ES7, ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ืื•ืคืจื˜ื•ืจ ื”ืืงืกืคื•ื ืฆื™ื” ** ื›ืงื™ืฆื•ืจ ืฉืœ ืขืฆืžื•ืช. ื–ื” ื”ืจื‘ื” ื™ื•ืชืจ ืžื”ื™ืจ ืžืฉื™ืžื•ืฉ ื‘- Math.pow(2, 3). ื–ื” ื ืจืื” ืคืฉื•ื˜, ืื‘ืœ ื ืงื•ื“ื” ื–ื• ื›ืœื•ืœื” ื‘ืจืฉื™ืžืช ื”ื˜ื›ื ื™ืงื•ืช, ืžื›ื™ื•ื•ืŸ ืฉื”ื™ื ืœื ืžื•ื–ื›ืจืช ื‘ื›ืœ ืžืงื•ื.

console.log(2 ** 3); // Result: 8

ืื™ืŸ ืœื‘ืœื‘ืœ ืื•ืชื• ืขื ื”ืกืžืœ ^, ื”ืžืฉืžืฉ ื‘ื“ืจืš ื›ืœืœ ืœื”ื’ื“ืœื”. ืื‘ืœ ื‘-JavaScript ื–ื” ื”ืื•ืคืจื˜ื•ืจ XOR.

ืœืคื ื™ ES7, ืงื™ืฆื•ืจ ื”ื“ืจืš ** ื™ื›ื•ืœ ืœืฉืžืฉ ืจืง ืขื‘ื•ืจ ื”ื—ื–ืงื” ืฉืœ ื‘ืกื™ืก 2 ื‘ืืžืฆืขื•ืช ืื•ืคืจื˜ื•ืจ ื”ืžืฉืžืจืช ืฉืžืืœื” ื‘ื›ื™ื•ื•ืŸ ืกื™ื‘ื™ื•ืช <<:

Math.pow(2, n);
2 << (n - 1);
2**n;

ืœื“ื•ื’ืžื”, 2 << 3 = 16 ืฉื•ื•ื” ืขืจืš ืœ-2 ** 4 = 16.

ืฆืฃ ืœืžืกืคืจ ืฉืœื

ืคืขื•ืœื•ืช / ื”ืžืจืช ืกื•ื’

ืื ืืชื” ืฆืจื™ืš ืœื”ืžื™ืจ ืฆืฃ ืœืžืกืคืจ ืฉืœื, ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘- Math.floor(), Math.ceil() ืื• Math.round(). ืื‘ืœ ื™ืฉ ื“ืจืš ืžื”ื™ืจื” ื™ื•ืชืจ, ืœืฉื ื›ืš ืื ื• ืžืฉืชืžืฉื™ื ื‘- |, ื›ืœื•ืžืจ ื‘ืื•ืคืจื˜ื•ืจ OR.

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

ื”ืชื ื”ื’ื•ืช | ืชืœื•ื™ ื‘ืžื™ื“ื” ืจื‘ื” ืื ืืชื” ืžืชืžื•ื“ื“ ืขื ืžืกืคืจื™ื ื—ื™ื•ื‘ื™ื™ื ืื• ืฉืœื™ืœื™ื™ื, ื›ืš ืฉื™ื˜ื” ื–ื• ืžืชืื™ืžื” ืจืง ืื ืืชื” ื‘ื˜ื•ื— ื‘ืžื” ืฉืืชื” ืขื•ืฉื”.

n | 0 ืžืกื™ืจ ืืช ื›ืœ ืžื” ืฉืื—ืจื™ ื”ืžืคืจื™ื“ ื”ืขืฉืจื•ื ื™, ื•ืงื•ืฆืจ ืืช ื”ืฆืฃ ืœืžืกืคืจ ืฉืœื.

ืืชื” ื™ื›ื•ืœ ืœืงื‘ืœ ืืช ืื•ืชื• ืืคืงื˜ ืขื™ื’ื•ืœ ื‘ืืžืฆืขื•ืช ~~. ืœืื—ืจ ื”ืžืจื” ื›ืคื•ื™ื” ืœืžืกืคืจ ืฉืœื, ื”ืขืจืš ื ืฉืืจ ืœืœื ืฉื™ื ื•ื™.

ื”ืกืจืช ืžืกืคืจื™ื ื ื’ืจืจื™ื

ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืื•ืคืจื˜ื•ืจ OR ื›ื“ื™ ืœื”ืกื™ืจ ื›ืœ ืžืกืคืจ ืฉืœ ืกืคืจื•ืช ืžืžืกืคืจ. ื–ื” ืื•ืžืจ ืฉืื ื—ื ื• ืœื ืฆืจื™ื›ื™ื ืœื”ืžื™ืจ ืกื•ื’ื™ื ื›ืžื• ื›ืืŸ:

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

ื‘ืžืงื•ื ื–ืืช ืื ื• ืคืฉื•ื˜ ื›ื•ืชื‘ื™ื:

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

ืงื™ืฉื•ืจ ืื•ื˜ื•ืžื˜ื™

ืฉื™ืขื•ืจื™ื

ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืกื™ืžื•ื ื™ ื—ืฆื™ื ES6 ื‘ืฉื™ื˜ื•ืช ืžื—ืœืงื•ืช, ื•ื”ื›ืจื™ื›ื” ืžืฉืชืžืขืช. ื–ื” ืื•ืžืจ ืฉืืชื” ื™ื›ื•ืœ ืœื”ื™ืคืจื“ ืžื‘ื™ื˜ื•ื™ื™ื ืฉื—ื•ื–ืจื™ื ืขืœ ืขืฆืžื ื›ืžื• this.myMethod = this.myMethod.bind(this)!

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

ื—ื™ืชื•ืš ืžืขืจืš

ืžืขืจื›ื™ื

ืื ืืชื” ืฆืจื™ืš ืœื”ืกื™ืจ ืขืจื›ื™ื ืžืžืขืจืš, ื™ืฉ ืฉื™ื˜ื•ืช ืžื”ื™ืจื•ืช ื™ื•ืชืจ ืžืืฉืจ splice().

ืœื“ื•ื’ืžื”, ืื ืืชื” ื™ื•ื“ืข ืืช ื’ื•ื“ืœ ื”ืžืขืจืš ื”ืžืงื•ืจื™, ืชื•ื›ืœ ืœืขืงื•ืฃ ืืช ืชื›ื•ื ืช ื”ืื•ืจืš ืฉืœื• ื‘ืื•ืคืŸ ื”ื‘ื:

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

ืื‘ืœ ื™ืฉ ืฉื™ื˜ื” ืื—ืจืช, ื•ืžื”ื™ืจื” ื™ื•ืชืจ. ืื ื”ืžื”ื™ืจื•ืช ื”ื™ื ืžื” ืฉื—ืฉื•ื‘ ืœืš, ื”ื ื” ื”ื‘ื—ื™ืจื•ืช ืฉืœื ื•:

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]

ื”ื“ืคืกืช ื”ืขืจื›ื™ื ื”ืื—ืจื•ื ื™ื ืฉืœ ืžืขืจืš

ืžืขืจื›ื™ื
ื˜ื›ื ื™ืงื” ื–ื• ื“ื•ืจืฉืช ืฉื™ืžื•ืฉ ื‘ืฉื™ื˜ืช slice() .

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]

ืขื™ืฆื•ื‘ ืงื•ื“ JSON

JSON

ื™ื™ืชื›ืŸ ืฉื›ื‘ืจ ื”ืฉืชืžืฉืช ื‘-JSON.stringify. ื”ืื ื™ื“ืขืช ืฉื–ื” ืขื•ื–ืจ ืœืขืฆื‘ ืืช ื”-JSON ืฉืœืš?

ืฉื™ื˜ืช stringify() ืœื•ืงื—ืช ืฉื ื™ ืคืจืžื˜ืจื™ื ืื•ืคืฆื™ื•ื ืœื™ื™ื: ืคื•ื ืงืฆื™ื™ืช ืชื—ืœื™ืฃ, ืฉื‘ื” ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื›ื“ื™ ืœืกื ืŸ ืืช ื”-JSON ื”ืžื•ืฆื’, ื•ืขืจืš ืจื•ื•ื—.

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

ื–ื” ื”ื›ืœ, ืื ื™ ืžืงื•ื•ื” ืฉื›ืœ ื”ื˜ื›ื ื™ืงื•ืช ื”ืœืœื• ื”ื™ื• ืฉื™ืžื•ืฉื™ื•ืช. ืื™ื–ื” ื˜ืจื™ืงื™ื ืืชื” ืžื›ื™ืจ? ื›ืชื‘ื• ืื•ืชื ื‘ืชื’ื•ื‘ื•ืช.

Skillbox ืžืžืœื™ืฆื”:

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”