const fetchData = id => {
return Promise.all([fetchAPI1(id), fetchAPI2(id)])
.then(([response1, response2]) => ({response1, response2}));
}
var isMomHappy = false;
if (isMomHappy) {...}
else {
reject( new Error('mom is not happy') );
}
reject( new Error('mom is not happy') );
willIGetNewPhone.catch(err=>{
console.log(err.message);
});
'use strict';
var promise = new Promise((resolve,reject)=>{
reject(new Error("провал"));
});
'use strict';
var promise = new Promise((resolve,reject)=>{
reject(new Error("провал"));
});
promise.catch(err=>{
console.log(err.message);
});
In [2]: D = (11.180339887498949+0j)
In [3]: complex(round(D.real), round(D.imag))
Out[3]: (11+0j)
constructor
работает как конструктор только в составе es6 класса.class Person {
constructor(name,age) {
this.name=name;
this.age=age;
}
};
var One = new Person("Alex", 32);
var Person = {
constructor: function(name,age){
this.name=name;
this.age=age;
}
};
var One = Object.create(new Person.constructor("Alex", 32));
console.log(One.name);
Условие.
Выражение, выполняющееся на каждой интерации цикла. Если выражение истинно, цикл выполняется. Условие не является обязательным. Если его нет, условие всегда считается истиной. Если выражение ложно, выполнение переходит к первому выражению, следующему за for.
let num = new Number(123);
num === 123; // false
num == 123; // true
typeof num; // object
// не строгий режим
function func() {
console.warn(this);
}
func.call(100); // выведет [Number: 100] объект, т.е. есть преобразование
"use strict"
function func() {
console.warn(this);
}
func.call(100); // выведет 100, примитивный number. т.е. преобразования нет
let o = {
x : 2,
y : o.x,
}
int*a;
int* a;
int *a;
int * a;
int * a, * b, c, * d, e; // a, b и d - указатели, c и e - числа
int *a, *b; // нормально
int* a, b; // Ошибка: b кажется указателем, но на самом деле - число.
&&
вычисляет слева направо каждый из своих операндов. Результат вычисление операнда приводится к булевому типу и если он true, переходит к вычислению следующего операнда. Операция повторяется до тех пор, пока результат вычисления очередного операнда не будет false, если это так, то возвращается результат вычисления данного операнда и цепочка обрывается.1 && 2 && 3 && 4 && 5 // 5
1 && 2 && 0 && 4 && 5 // 0
confirm(1) && confirm(2) && confirm(3)
||
похожая картина. Отличие в том, что цепочка операндов будет выполняться до первого истинного операнда1 || 2 || 3 || 4 || 5 // 1
0 || false || !!0 || 5 || true || !!1 //5
confirm(1) || confirm(2) || confirm(3)
&&
и ||
не возвращают true или false. Они возвращают результат вычисления одного из своих операндов.