เปเบกเบทเปเบญเบเปเบญเบเปเบฅเบตเปเบกเบฎเบฝเบ JavaScript, เบชเบดเปเบเบเปเบฒเบญเบดเบเบเบตเปเบเปเบญเบเปเบฎเบฑเบเปเบกเปเบเปเบฎเบฑเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบ tricks เบเบตเปเบเปเบงเบเปเบซเปเบเปเบญเบเบเบฐเบซเบเบฑเบเปเบงเบฅเบฒ. เบเปเบฒโเบเบฐโเปเบเบปเปเบฒโเปเบเปโเบเบปเบโเปเบซเบฑเบโเปเบเบปเบฒโเปเบเบปเปเบฒโเบเบฒเบโเปเบเบโเบเบฒเบโเบญเบทเปเบเปโ, เปเบโเปเบงเบฑเบโเปเบโเบเบตเปโเปเบเบโเบเปเบฒเบโเบเบฑเบโเปเบฅเบฐโเปเบโเบเบนเปโเบกเบทโ.
เปเบเบเบปเบเบเบงเบฒเบกเบเบตเป, เบเปเบญเบเบเบฐเบชเบฐเปเบเบ 12 เบงเบดเบเบตเบเบตเปเบเบตเบเบตเปเบเบฐเบเบฑเบเบเบธเบเปเบฅเบฐเปเบฅเบฑเปเบเบฅเบฐเบซเบฑเบ JavaScript เบเบญเบเบเปเบฒเบ. เปเบเบเปเบฅเบฐเบเบตเบซเบผเบฒเบเบเบตเปเบชเบธเบ, เบเบงเบเปเบเบปเบฒเปเบเบปเปเบฒเปเบกเปเบเบเบปเปเบงเปเบ.
เบเบงเบเปเบฎเบปเบฒเปเบเบทเบญเบ: เบชเปเบฒเบฅเบฑเบเบเบนเปเบญเปเบฒเบเบเบฑเบเบซเบกเบปเบเบเบญเบ "Habr" - เบชเปเบงเบเบซเบผเบธเบ 10 rubles เปเบกเบทเปเบญเบฅเบปเบเบเบฐเบเบฝเบเปเบเบซเบผเบฑเบเบชเบนเบ Skillbox เปเบเบเปเบเปเบฅเบฐเบซเบฑเบเบชเบปเปเบเปเบชเบตเบก "Habr".
Skillbox เปเบเบฐเบเปเบฒ: เบซเบผเบฑเบเบชเบนเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ
"เบเบนเปเบเบฑเบเบเบฐเบเบฒเบกเบทเบเบท PRO" .
เบเบฒเบเบเบฑเปเบเบเบญเบเบเบธเบเบเปเบฒเบเบตเปเปเบเบฑเบเปเบญเบเบฐเบฅเบฑเบ
เบญเบฒเปเบฃ
เบเบฐเปเบเบเบงเบฑเบเบเบธ Set เปเบเปเบเบทเบเบเปเบฒเบชเบฐเปเบซเบเบตเปเบ ES6, เบเปเบญเบกเบเบฑเบเบเบปเบงเบเบฐเบเบดเบเบฑเบเบเบฒเบเปเบเปเบเบฐเบเบฒเบ, เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบเปเบฒเปเบเปเบกเบฑเบเปเบเบทเปเบญเบชเปเบฒเบ array เปเบซเบกเปเบเบตเปเบกเบตเบเบฝเบเปเบเปเบเปเบฒเบเบตเปเปเบเบฑเบเปเบญเบเบฐเบฅเบฑเบ.
const array = [1, 1, 2, 3, 5, 5, 1]
const uniqueArray = [...new Set(array)];
console.log(uniqueArray); // Result: [1, 2, 3, 5]
เปเบเบชเบฐเบเบฒเบเบฐเบเบฒเบเบเบปเบเบเบฐเบเบด, เบฅเบฐเบซเบฑเบเบซเบผเบฒเบเปเบกเปเบเบเปเบฒเปเบเบฑเบเปเบเบทเปเบญเบเปเบฒเปเบเบตเบเบเบฒเบเบเบฝเบงเบเบฑเบ.
เปเบเบฑเบเบเบดเบเบเบตเปเปเบเปเปเบเปเบเบฑเบ arrays เบเบตเปเบกเบตเบเบฐเปเบเบเปเบเบทเปเบญเบเบเบปเปเบ: undefined, null, boolean, string เปเบฅเบฐ number. เบเปเบฒโเบซเบฒเบโเบงเปเบฒโเบเปเบฒเบโเบเปเบฒโเบฅเบฑเบโเปเบฎเบฑเบโเบงเบฝเบโเบฎเปเบงเบกโเบเบฑเบ array เบเบตเปโเบเบฐโเบเบญเบโเบเปเบงเบโเบงเบฑเบโเบเบธโ, เบซเบเปเบฒโเบเบตเปโ, เบซเบผเบท arrays เปเบเบตเปเบกโเปเบเบตเบกโ, เบเปเบฒเบโเบเบฐโเบเปเบญเบโเบเบฒเบโเบงเบดโเบเบตโเบเบฒเบโเบเบตเปโเปเบเบโเบเปเบฒเบโเบเบฑเบโ.
เบเบงเบฒเบกเบเบฒเบงเบเบญเบ cache array เปเบเบฎเบญเบเบงเบฝเบ
เบฎเบญเบเบงเบฝเบ
เปเบกเบทเปเบญเบเปเบฒเบเบฎเบฝเบเบฎเบนเปเบชเปเบฒเบฅเบฑเบ loops, เบเปเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบกเบเบฑเปเบเบเบญเบเบกเบฒเบเบเบฐเบเบฒเบ:
for (let i = 0; i < array.length; i++){
console.log(i);
}
เปเบเบงเปเบเบเปเปเบเบฒเบก, เบเปเบงเบ syntax เบเบตเป, for loop เบเบงเบเปเบเบดเปเบเบเบงเบฒเบกเบเบฒเบงเบเบญเบ array เปเบเปเบฅเบฐเบญเบฑเบเบเปเบณเป.
เบเบฒเบเบเบฑเปเบเบเบตเปเบชเบฒเบกเบฒเบเปเบเบฑเบเบเบฐเปเบซเบเบ, เปเบเปเปเบเบเปเบฅเบฐเบเบตเบซเบผเบฒเบเบเบตเปเบชเบธเบ, เบกเบฑเบเบกเบตเบเบฐเบชเบดเบเบเบดเบเบฒเบเบซเบผเบฒเบเบเบตเปเบเบฐ cache เบเบงเบฒเบกเบเบฒเบงเบเบญเบ array, เปเบเบดเปเบเบเบฐเบเปเบญเบเบเบฒเบเบซเบเบถเปเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบกเบฑเบ. เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเปเปเบเบเบเบฒเบเบเปเบฒเบเบปเบเบเบปเบงเปเบเบเบงเบฒเบกเบเบฒเบงเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบฒเบเบปเบเบเบปเบงเปเบ i, เปเบเบฑเปเบเบเบตเป:
for (let i = 0, length = array.length; i < length; i++){
console.log(i);
}
เปเบเบซเบผเบฑเบเบเบฒเบ, เปเบเบทเบญเบเบเบทเบเบฑเบเบเบฑเบเบเปเบฒเบเปเบเบดเบ, เปเบเปเปเบเบเบเบฒเบเปเบเบตเปเบกเบเบฐเบซเบเบฒเบเบเบญเบ loop เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเปเบฎเบฑเบเบเบฒเบเบเบฐเบซเบเบฑเบเปเบงเบฅเบฒเบเบตเปเบชเปเบฒเบเบฑเบ.
เบเบฐเปเบเบเบงเบปเบเบเบญเบเบชเบฑเปเบ (เบเบฐเปเบเบ McCarthy)
เบเบนเปเบเบฐเบเบญเบเบเบฒเบเบเบตเปเบกเบตเปเบเบทเปเบญเบเปเบ
เบเบปเบงเบเบฐเบเบดเบเบฑเบเบเบฒเบ ternary เปเบกเปเบเบงเบดเบเบตเบเบตเปเปเบงเปเบฅเบฐเบกเบตเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบตเปเบเบฐเบเบฝเบเบเปเปเบเบงเบฒเบกเปเบเบเบเปเบฒเบเป (เปเบฅเบฐเบเบฒเบเบเบฑเปเบเบเปเปเบเปเปเบเปเบฒเบเบเบฒเบ):
x> 100? โเบซเบผเบฒเบเบเบงเปเบฒ 100โ: โเปเปเบญเบเบเบงเปเบฒ 100โ;
x> 100? (x>200? "more than 200": "เบฅเบฐเบซเบงเปเบฒเบ 100-200"): "เบซเบเปเบญเบเบเบงเปเบฒ 100";
เปเบเปเบเบฒเบเบเบฑเปเบเปเบเบดเบเปเบกเปเบเบงเปเบฒเบเบนเปเบเบฐเบเบดเบเบฑเบเบเบฒเบ ternary เปเบกเปเบเบชเบฑเบเบชเบปเบเบซเบผเบฒเบเบเปเบงเบฒเบเบตเปเบเปเบญเบเบเบฒเบ. เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบเป 'and' && เปเบฅเบฐ 'or' เปเบเบ || เบเบปเบงเบเบฐเบเบดเบเบฑเบเบเบฒเบ Boolean เปเบเบทเปเบญเบเบฐเปเบกเบตเบเบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบเบฒเบเบขเปเบฒเบเปเบเบเบฒเบเบเบตเปเบเบฑเบเปเบเบเบเบงเปเบฒ. เบกเบฑเบเบกเบฑเบเบเบฐเปเบญเบตเปเบเบงเปเบฒ "เบงเบปเบเบเบญเบเบชเบฑเปเบ" เบซเบผเบท "เบเบฒเบเบเบฑเบเบญเบฑเบเบเบฑเบเบงเบปเบเบเบญเบเบชเบฑเปเบ".
เบงเบดเบเบตเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบตเป
เปเบซเปเปเบงเบปเปเบฒเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบเบฑเบเบเบทเบเบเบฝเบเปเบเปเบซเบเบถเปเบเปเบเบชเบญเบเปเบเบทเปเบญเบเปเบเบซเบผเบทเบซเบผเบฒเบเบเบงเปเบฒเบเบฑเปเบ.
เบเบฒเบโเบเปเบฒโเปเบเป && เบเบฐโเบเบฑเบโเบเบทเบโเบเปเบฒโเบเปเบฒโเบญเบดเบโเบเบตเปโเบเปเปโเบเบทเบโเบเปเบญเบ. เบเปเบฒเปเบเปเบฅเบฐ operand เบเบฐเปเบกเบตเบเปเบเบฑเบ true, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบชเบธเบเบเปเบฒเบเบเบตเปเบเบทเบเบเบฐเปเบกเบตเบเบเบฐเบเบทเบเบชเบปเปเบเบเบทเบ.
let one = 1, two = 2, three = 3;
console.log(one && two && three); // Result: 3
console.log(0 && null); // Result: 0
เบเบฒเบเบเปเบฒเปเบเป || เบเบฐเบเบฑเบเบเบทเบเบเปเบฒเบเบตเปเปเบเปเบเบดเบเบเปเบฒเบญเบดเบ. เบเปเบฒเปเบเปเบฅเบฐ operand เบเบฐเปเบกเบตเบเปเบเบฑเบเบเบดเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบกเบนเบเบเปเบฒเบเบฒเบเบเบฐเปเบกเบตเบเบชเบธเบเบเปเบฒเบเบเบฐเบเบทเบเบชเบปเปเบเบเบทเบ.
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 เปเบเบเบเปเปเบเปเบฒเบเบถเบเปเบเบดเบเบงเปเบฒเบกเบฑเบเบเบฐเบเปเปเบเบทเบเบเปเบฒเบเบปเบเบซเบผเบทเบเปเป.
เบฅเบฐเบเบปเบเบเปเบญเบเปเบชเปเบเบฒเบเปเบฅเบทเบญเบ
เบเบปเบ เปเบถเปเบ เบญเบฒเบเบเบฐเปเบเบฐ เบเบณ เปเบซเปเปเบเปเบฅเบฐเบเบปเบเบเปเบญเบเปเบชเปเบเบฒเบเปเบฅเบทเบญเบเปเบเปเบงเบฅเบฒเบเบตเปเบเบฐเบเบฒเบเบฒเบกเบชเบปเปเบเบเบทเบเบเบฑเบเบชเบดเบเปเบฅเบดเบเปเบเบปเปเบฒเปเบเปเบเปเบเบเบชเปเบฒเบเบเบปเปเบเปเบกเป. เบเบฑเปเบเบเบฑเปเบ, เปเบเบทเปเบญเบเบซเบกเบฒเบเบเปเบฒเบเบฒเบก? เบชเบฒเบกเบฒเบเปเบเปเปเบเบทเปเบญเบเบถเบเบเบฑเบเบชเบดเบเบเบฝเบเปเบเปเบเปเบฒเบกเบฑเบเบเปเปเปเบกเปเบ null.
เบเบปเบงเบขเปเบฒเบ, เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบ refactor เบเบปเบงเบขเปเบฒเบเบเปเบฒเบเปเบเบดเบเปเบเบทเปเบญเปเบซเปเปเบเป this.state.data?..(). เบเบฑเปเบเปเบกเปเบ, เบเปเปเบกเบนเบเบเบทเบเบชเบปเปเบเบเบทเบเบเบฝเบเปเบเปเบเปเบฒเบเปเบฒเบเปเปเปเบกเปเบ null.
เบซเบผเบท, เบเปเบฒเบกเบฑเบเบชเบณเบเบฑเบเบงเปเบฒเบฅเบฑเบเบเบทเบเบเบณเบเบปเบเบซเบผเบทเบเปเป, เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบชเบปเปเบ this.state?.data.
เบเปเบฝเบเปเบเบฑเบ Boolean
เบเบฐเปเบเบเบเบฒเบเปเบเบ
เบเบญเบเปเบซเบเบทเบญเบเบฒเบเบเบฒเบเบเปเบฒเบเบฒเบเบเบญเบ boolean เบเบปเบเบเบฐเบเบดเปเบกเปเบ true เปเบฅเบฐ false, JavaScript เบเบฑเบเบเบฐเบเบดเบเบฑเบเบเปเบฒเบญเบทเปเบเปเบเบฑเบเบซเบกเบปเบเปเบเบฑเบเบเบงเบฒเบกเบเบดเบเบซเบผเบท falsy.
เบเบปเบเบเปเบงเบฒเบชเบฑเบเปเบเบเปเบซเบฑเบเบเปเบฒเบเปเปเบเบฑเปเบเบเบฑเปเบ, เบเปเบฒเบเบฑเบเบซเบกเบปเบเปเบ JavaScript เปเบกเปเบเบเบงเบฒเบกเบเบดเบ, เบเบปเบเปเบงเบฑเปเบ 0, "", null, undefined, NaN เปเบฅเบฐ, เปเบเปเบเบญเบ, false. เบญเบฑเบเบชเบธเบเบเปเบฒเบเปเบกเปเบเบเบญเบก.
เบเบงเบโเปเบฎเบปเบฒโเบชเบฒโเบกเบฒเบโเบชเบฐโเบซเบผเบฑเบโเบฅเบฐโเบซเบงเปเบฒเบโเบเบฑเบโเบชเบญเบโเปเบเปโเบขเปเบฒเบโเบเปเบฒเบโเบเบฒเบโเปเบเบโเบเบฒเบโเบเปเบฒโเปเบเป ! operator, เปเบเบดเปเบโเบเบฑเบโเบเปเบฝเบโเบเบฐโเปเบเบโเปเบเบฑเบ boolean.
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"
เบงเบดเบเบตเบเบฒเบเบเบตเปเบเบฑเบเบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเปเบฝเบเบเบฐเปเบเบเบเปเปเบกเบนเบ boolean เปเบเบฑเบเบเปเบฒเบเบปเบงเปเบฅเบเบเบปเบเบเบฐเบเบด, เบเบฑเปเบเบเบตเปเบชเบฐเปเบเบเบเปเบฒเบเบฅเบธเปเบกเบเบตเป:
console.log(+true); // Return: 1
console.log(+false); // Return: 0
เบญเบฒเบเบเบฐเบกเบตเบชเบฐเบเบฒเบเบฐเบเบฒเบเบเบตเป + เบเบฐเบเบทเบเบเบตเบเบงเบฒเบกเบงเปเบฒเปเบเบฑเบเบเบปเบงเบเบฐเบเบดเบเบฑเบเบเบฒเบเบชเบปเบกเบเบปเบเปเบเบเบเบตเปเบเบฐเปเบเบฑเบเบเบปเบงเบเบฐเบเบดเบเบฑเบเบเบฒเบเปเบเบตเปเบกเปเบเบตเบก. เปเบเบทเปเบญเบซเบผเบตเบเปเบงเบฑเปเบเบเบฒเบเบเบตเป, เบเปเบฒเบเบเบงเบเปเบเป tildes: ~~. เปเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบตเปเปเบกเปเบเปเบเบปเปเบฒเบเบฑเบ -n-1. เบเบปเบงเบขเปเบฒเบ, ~15 เปเบเบปเปเบฒเบเบฑเบ -16.
เบเบฒเบเปเบเปเบชเบญเบ tildes เบเบดเบเบเปเปเบเบฑเบเบเบฐเบเบฐเบเบดเปเบชเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเบฒเบฐเบงเปเบฒ - (- - 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, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเปเบเบปเบงเบเบฐเบเบดเบเบฑเบเบเบฒเบ exponential ** เปเบเบฑเบ shorthand เบชเปเบฒเบฅเบฑเบเบญเปเบฒเบเบฒเบ. เบญเบฑเบเบเบตเปเปเบงเบเบงเปเบฒเบเบฒเบเปเบเป Math.pow(2, 3). เบกเบฑเบเปเบเบดเปเบเบเบทเบงเปเบฒเบเปเบฒเบเบเบฒเบ, เปเบเปเบเบธเบเบเบตเปเปเบกเปเบเบฅเบงเบกเบขเบนเปเปเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบเปเบเบฑเบเบเบดเบ, เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒเบกเบฑเบเบเปเปเปเบเปเบเบทเบเบเปเบฒเบงเปเบเบดเบเบขเบนเปเบเบปเปเบงเบเบธเบเปเบซเปเบ.
console.log(2 ** 3); // Result: 8
เบกเบฑเบโเบเปเปโเบเบงเบโเบชเบฑเบเบชเบปเบโเบเบฑเบโเบชเบฑเบเบเบฐเบฅเบฑเบ^เบเบถเปเบโเปเบเปโเบเบปเปเบงโเปเบโเบชเบณเบฅเบฑเบโเบเบฒเบโเปเบฅเบโเบเบณเบฅเบฑเบ. เปเบเปเปเบ JavaScript เบเบตเปเปเบกเปเบเบเบปเบงเบเบฐเบเบดเบเบฑเบเบเบฒเบ XOR.
เบเปเบญเบ ES7, เบเบฒเบเบฅเบฑเบ ** เบชเบฒเบกเบฒเบเปเบเปเปเบเปเบเบฝเบเปเบเปเบชเปเบฒเบฅเบฑเบเบเบฐเบฅเบฑเบเบเบฒเบเบเบญเบเบเบทเปเบเบเบฒเบ 2 เปเบเบเปเบเปเบเบปเบงเบเบฐเบเบดเบเบฑเบเบเบฒเบ shift เบเปเบฒเบ bitwise <<:
Math.pow(2, n);
2 << (n - 1);
2**n;
เบเบปเบงเบขเปเบฒเบ: 2 << 3 = 16 เปเบเบปเปเบฒเบเบฑเบ 2**4 = 16.
เปเบฅเบทเปเบญเบเปเบเบฑเบเบเบณเบเบงเบเปเบเบฑเบก
เบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบ / เบเบฐเปเบเบเบเบฒเบเบเปเบฝเบเปเบเบ
เบเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบเปเบเบ float เปเบเบฑเบเบเปเบฒเบเบงเบเปเบเบฑเบก, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเป Math.floor(), Math.ceil() เบซเบผเบท Math.round(). เปเบเปเบกเบตเบงเบดเบเบตเบเบตเปเปเบงเบเบงเปเบฒ, เบชเปเบฒเบฅเบฑเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบเป |, เบเบฑเปเบเปเบกเปเบ, OR operator.
console.log(23.9 | 0); // Result: 23
console.log(-23.9 | 0); // Result: -23
เบเบถเบเบเบดเบเบณ | เบชเปเบงเบเปเบซเบเปเปเบกเปเบเบเบถเปเบเบเบฑเบเบงเปเบฒเบเปเบฒเบเบเปเบฒเบฅเบฑเบเบเบฑเบเบเบฒเบเบเบฑเบเบเบปเบงเปเบฅเบเปเบเบเบฒเบเบเบงเบเบซเบผเบทเบเบฒเบเบฅเบปเบ, เบเบฑเปเบเบเบฑเปเบเบงเบดเบเบตเบเบฒเบเบเบตเปเปเบกเปเบเปเบซเบกเบฒเบฐเบชเบปเบกเบเบฝเบเปเบเปเบเปเบฒเบเปเบฒเบเบซเบกเบฑเปเบเปเบเปเบเบชเบดเปเบเบเบตเปเบเปเบฒเบเบเปเบฒเบฅเบฑเบเปเบฎเบฑเบ.
n | 0 เปเบญเบปเบฒเบเบธเบเบขเปเบฒเบเบญเบญเบเบซเบผเบฑเบเบเบฒเบเบเบปเบงเบเบฑเปเบเบเบปเบเบชเบฐเบเบดเบเบปเบก, เบเบฑเบ float เปเบเปเบเบฑเบเบเปเบฒเบเบงเบเปเบเบฑเบก.
เปเบเบปเปเบฒเบชเบฒเบกเบฒเบเปเบเปเบฎเบฑเบเบเบปเบเบฎเบญเบเบเบฝเบงเบเบฑเบเปเบเบเปเบเป ~~. เบซเบผเบฑเบโเบเบฒเบโเบเบฒเบโเบเบฑเบโเบเบฑเบโเปเบซเปโเบเปเบฝเบโเปเบเบฑเบโเบเปเบฒโเบเบงเบโเปเบเบฑเบกโ, เบกเบนเบโเบเปเบฒโเบเบฑเบโเบเบปเบโเบเปเปโเบกเบตโเบเบฒเบโเบเปเบฝเบโเปเบเบโ.
เบเบฒเบเบเบญเบเบเบปเบงเปเบฅเบเบเปเปเบเปเบฒเบ
เบเบปเบงเบเบฐเบเบดเบเบฑเบเบเบฒเบ 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>
</>
)
}
};
เบเบฒเบเบเบฑเบเบญเบฐเปเบฃ
เบญเบฒเปเบฃ
เบเปเบฒโเบซเบฒเบโเบงเปเบฒโเบเปเบฒเบโเบเปเบญเบโเบเบฒเบโเบฅเบปเบโเบเปเบฒโเบเบฒเบ arrayโ, เบกเบตโเบงเบดโเบเบตโเบเบฒเบโเปเบงโเบโเปโเบงเบฒ splice().
เบเบปเบงเบขเปเบฒเบ, เบเปเบฒเบเปเบฒเบเบฎเบนเปเบเบฐเบซเบเบฒเบเบเบญเบ array เบเบปเปเบเบชเบฐเบเบฑเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบ override เบเบธเบเบชเบปเบกเบเบฑเบเบเบงเบฒเบกเบเบฒเบงเบเบญเบเบกเบฑเบเบเบฑเปเบเบเปเปเปเบเบเบตเป:
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 เปเบเบฐเบเปเบฒ:
- เบซเบผเบฑเบเบชเบนเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบชเบญเบเบเบต
"เบเปเบญเบเปเบเบฑเบเบเบฑเบเบเบฑเบเบเบฐเบเบฒเปเบงเบฑเบ PRO" .- เบซเบผเบฑเบเบชเบนเบเบญเบญเบเปเบฅเบ
"เบเบฑเบเบเบฑเบเบเบฐเบเบฒ C# เบเบฒเบ 0" .- เบซเบผเบฑเบเบชเบนเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ
"เบเบฑเบเบเบฑเบเบเบฐเบเบฒ PHP เบเบฒเบ 0 เปเบเบดเบ PRO" .
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com