class Habr {
__values = [];
static delimiter = ';';
get qna() {
return this.__values.join(Habr.delimiter);
}
set qna(value) {
if (!this.__values.includes(value)) {
this.__values.push(value);
}
}
}
const foo = new Habr();
foo.qna = 'x=y';
foo.qna = 'a=b';
console.log(foo.qna); // x=y;a=b
условие ? выражение1 : выражение2
if .. else
, где нужны разные действия.setInterval()
использовать requestAnimationFrame()true
или false
. Разрешать или запрещать анимацию.requestAnimationFrame()
только если переменная true
.false
в true
, запускать отрисовку.console.log(work([-10, -20, -40])); // -40 - (-10) = -30 => 30
-10
вычитаем -
минимальное -40
:-10 - (-40) == -10 + 40 == 30
if..else
, Math.abs()
и TensorFlow )без reduce и т.д.Тогда и без
Math.max()
/ Math.min()
max
и min
равны первому элементу.max
. Если очередной больше, то обновляем max
. Та же логика с min
.Math.max()
+ Math.min()
,const checkArr = [!mailArr.length, !inputEmptyArr.length];
if (consentCheckbox) {
checkArr.push(consentCheckbox.checked);
}
btnSubmite.classList.toggle('valid-success', !checkArr.some(x => !x));
.checked
if()
every(=== true)
логически равноценно !some(=== false)
– интересует, есть ли хоть один false
.entity
внутри функции перестала указывать на тот же массив, что и fruits
,function loadEntities(entity, item) {
// тут entity из аргументов указывает туда же, куда и fruits
// можно вызывать методы того, внешнего массива, Те же push(), splice()
entity = []
// а тут entity стала указывать в другую сторону, на новый пустой массив
// fruits это уже никак не касается
entity.push(item)
// положили что-то в никчёмный массив
}
0
.const fruits = []; // навсегда
loadEntities(fruits, 'banana');
console.log(fruits);
loadEntities(fruits, 'apple');
console.log(fruits);
function loadEntities(entity, item) {
entity.length = 0; // массив тот же, но пуст
entity.push(item);
}
entity.splice(0, entity.length);
prompt()
возвращает текстовую строку."100"
меньше (по алфавиту) строки "50"
.let a = +prompt('Введите 1-е число');
let a = +prompt('Введите 1-е число');
let b = +prompt('Введите 2-е число');
if (a < b) {
[a, b] = [b, a]; // поменяли местами
}
// теперь точно a > b
alert(b + ',' + a);
alert(a + ',' + b);
Node.TEXT_NODE
и именем nodeName == "#text"
[1, 2, 3]
→ X
)forEach()
div.title
, внутри которого потом появится кнопка.arr.reduce((acc, c) => acc + c) // -84
arr.length // 5
Math.min(...arr) // -100
Math.max(...arr) // 10
arr.every( item => (item & 1) === 0 )
arr.filter( item => (item & 1) === 0 )
const isEven = num => (num & 1) === 0;
тут проверяется последний бит числа, если он 0
, значит, число четное. Годится только для небольших 32-битных целых.arr.every(isEven) // false
arr.filter(isEven) // [2, 4, 6, 8, 10]
data
, где хранятся собственные данные инстанса компонента.<script>
export default {
data() {
return {
isOpen: false,
}
}
methods: {
toggle: () => this.isOpen = !this.isOpen,
}
}
</script>
function(err, results)
, которую вызовут позже, "потом", когда до-олгая операция запроса к БД завершится.async function intervalParserGroup(connect) {
const queryAllTable = 'SHOW TABLES FROM communities_auto';
const arrAllNameTable = [];
await new Promise((resolve, reject) => {
connect.query(queryAllTable, (err, results) => {
if (err) reject(err);
arrAllNameTable.push(results);
resolve();
});
});
console.log(arrAllNameTable);
}