αα
ααααααα»αα
αΆααααααΎαααα JavaScript ααΏαααααΌαααααααα»αααΆαααααΎααΊαααααΎααααααΈαααα·α
ααααα½ααααα»αααααααααααααΆα αααα»αβααΆαβαααααβααΎαβαα½αβααΆβααΈβα’αααβαααααβαααααα·ααΈβαααααβαααβαα
βααΎβααα αααααβαααααβααααΆ αα·αβαααα»αβααααα
βααα
αα
αααα»αα’αααααααα αααα»αααΉααααα αΆαα’αααααΌααα·ααΈααα’αα
ααα½α 12 ααΎααααΈαααααα’ αα·ααααααΎαααααΏαααΌα JavaScript ααααα’αααα αααα»αααααΈααΆαα
αααΎααα½αααααΆαααααααααΆαααα
ααΎαααααΉαα αααααΆααα’αααα’αΆαααΆααα’αααα "Habr" - ααΆααααα α»αααααα 10 rubles αα αααα α»αααααααααα»ααααααα·ααααΆ Skillbox ααΆαα½ααααααααΎαααααΌαααααααααααΆα "Habr" α
Skillbox ααααΆαα αααααα·ααααΆααΆααααααα
"α’αααα’αα·ααααααα ααα PRO" .
ααααααααααα·ααα
α’αΆαα
αααααα Set object ααααΌαααΆαααααΆααα αααα»α ES6 αα½αααΆαα½αααΉα... , spread operator ααΎαα’αΆα ααααΎααΆααΎααααΈαααααΎα array ααααΈαααααΆαααααααααα·αααααα»αααααα
const array = [1, 1, 2, 3, 5, 5, 1]
const uniqueArray = [...new Set(array)];
console.log(uniqueArray); // Result: [1, 2, 3, 5]
αααα»αααααΆαααΆαααααααΆ ααΌαα αααΎααααααΊααααΌαααΆαααΆα αΆαααΆα αααΎααααΈα’αα»ααααααααα·ααααα·ααΆαααΌα ααααΆα
αα αα ααααααααααααΎαααΆααααααΆααα’αΆαααααααΆααααααααααα αα·αααΆαααααα αα»αααΆαααα αααΌααΈα ααααα’αααα αα·ααααα ααααα·αααΎα’ααααααα»αααααΎααΆαααΆαα½αα’αΆαααααααΆαααααα» αα»αααΆα α¬α’αΆαααααααα α’αααααΉαααααΌαααΆααα·ααΈααΆααααααααααα
ααααααααα’αΆααααααΆαααααααΆααααΆαααααα
αααα
αα αααα’ααααααααααα·ααα»α α’αααααααΎααΆαααΈαα·αα·ααΈαααααααΆαα
for (let i = 0; i < array.length; i++){
console.log(i);
}
ααααααΆαααΆααααα ααΆαα½αααΉαααΆαααααααααααααα αααααΆααααααα·ααα»ααααα½ααα·αα·αααααααα αΎααααααααα’αααΈααααααααα’αΆααααΈαα½ααα
αααααααααΆα’αΆα ααΆααααααααα ααα»αααααααα»αααααΈααΆαα αααΎα ααΆααΆαααααα·αααααΆαααΆααααα»αααααΆαααααααΆααααααααααα’αΆαα αααααΉααααααΌαα±ααααΆαααΆαα αΌαααααΎααΆαα½αα ααΎαβα’αΆα βααααΎβααΆβααΆαβαααβαααααβα’αααβαααααα αααβααΎαβαααααβα’ααα i ααΌα βαααα
for (let i = 0, length = array.length; i < length; i++){
console.log(i);
}
ααΆαααααΆαααααααΎαααααΌα ααααΆααΉαααΆαααΎααα»αααααααααΆααααααΎαααα αααααα·ααα»αααΎαααΉαααα½αααΆαααΆαααααααααααααΆααααααΆααα
ααΆαααΆααααααααααααΈααααΈ (ααΆαααΆαααααα McCarthy)
ααααα·ααααα·ααααΆααααααααα
ααααα·ααααα·αα ternary ααΊααΆαα·ααΈααΏα αα·αααΆαααααα·αααααΆααααα»αααΆααααααααα ααααΈαααααααΆαααααΆαααααααααααΆαααα (α αΎααα½αααΆααα·αααΆαααααα)α
x> 100? "α
αααΎαααΆα 100": "αα·α
ααΆα 100";
x> 100? (x>200? "more than 200": "αααΆα 100-200"): "αα·α
ααΆα 100";
ααα»αααααα½αααΆαααΌααααΈααααααα·ααααα·αα ternary ααΆαααΆααααα»αααααΆαααΆααααααΌαααΆαα ααΎαα’αΆα ααααΎ 'and' && αα·α 'or' αααα½ααα·α || ααααα·ααααα·αα Boolean ααΎααααΈααΆααααααααααααααΆααααΆαααααα»ααα·ααΈααααααααΆααααα ααΆααααΌαααΆαααα α ααΆ "ααααααΈααααΈ" α¬ "ααΆαααΆααααααααααααΈααααΈ" α
ααΎααΆαααΆαααα
α§αααΆααΆβααΎαβα ααβαααα‘ααβααααααααβαα½αβαααα»αβα ααααβααααααααβααΈαβα¬βα αααΎαα
ααΆαααααΎ && ααΉααααα‘ααααααααα·ααα·αααααΌαα ααααα·αααΎ operand ααΈαα½ααααΆαααααααα αα·α αααααααααα α»αααααααααααΆαααΆααααααααΉαααααΌαααΆααααα‘ααα
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 ααααα·ααα·αααΈααΆααΎααΆαα·αααααΌαααΆααααααα¬α’αααααααα
αααααααααΆαααααααΎα
ααα»αααααααΆααα’αΆα ααααΎα±ααααααΎαααααααααΆααααααα α α·ααα αα αααααααΆααΆααααα‘αααααααααααααααα·ααααααα αα αααα»ααα ααΆααααααααααΎαααΎα ααΌα αααα αααααΆαα½α? α’αΆα βααααΌαβααΆαβααααΎβααΎααααΈβαα βααβααααααβαααααααα·βααΆαβαα»αααααΆβααβααΆβαα·αβαααβααΆβααααα
ααΆα§ααΆα ααα ααΎαα’αΆα ααααααα§ααΆα αααααΆαααΎ ααΎααααΈααα½αααΆα this.state.data?..()α αααβααΊβαα·ααααααβααααΌαβααΆαβαααα‘ααβαα»αααααΆβααβαααααβαα·αβαααβαααα
α¬ααααα·αααΎααΆααΆαααα αΆααΆααΎααααααααΌαααΆααααααα¬α’αα ααΎαα’αΆα αααα‘αα this.state?.dataα
ααααααααα ααΆαααΌααΈα
ααααααααΆαααααααα
ααααααααΈααΎαα»αααΆααααΌααΈαααααααΆαα·α αα·ααα·ααα·α JavaScript ααα αΆαααα»ααααααααααααααααΆααα’ααααΆααΆααΆααα·α α¬αααααααααΆαα
αα αΌαααΆααααααΆαααΆαααααααααΆααααααα αααααααΆααα’αααα αααα»α JavaScript ααΊααΆααΆααα·α ααΎαααααα 0, "", null, undefined, NaN αα·αααΆααΆααα·αααΆαα αα·ααα·αα ααααααααααααΊαααααααααΆαα
ααΎαα’αΆα ααααΌααααΆαααΆααααΈααααΆαααΆααααα½ααααααααΎ ! operator αααααααααααααααααα ααΆαααΌααΈαα
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
ααΆα’αΆα ααΆαααααΆαααΆαααα + ααΉαααααΌαααΆαααααααΆαααΆααΆ ααααα·ααααα·ααααααΆααααΆααΆα ααααα·ααααα·ααααααααα ααΎααααΈαααααΆααααα αΆααα α’ααααα½αααααααΎ 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"
<ααΆααααα αα
ααααα·ααααα·ααΆα
α αΆααααααΎααα αααα»α ES7 α’αααα’αΆα ααααΎ exponentiation operator ** ααΆα’ααααααΆαααααααΆααα’αααΆα α ααΆααΏαααΆαααΆαααααΎ 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 operatorα
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 ααααΆαα
- αααααα·ααααΆααΆαααααααααααααααΈαααααΆα
"αααα»αααΆα’ααααααααΎαααα ααααα PRO" .- αααααα·ααααΆααΆαα’ααΈαααΊαα·α
"α’αααα’αα·αααααα C# ααΈ 0" .- αααααα·ααααΆααΆαααααααααααΆα
"α’αααα’αα·αααααα PHP ααΈ 0 ααα PRO" .
ααααα: www.habr.com