При асинхронном выполнении return имеет смысл только в качестве окончания выполнения функции, но не для возврата какого либо значения. В данном случае полученное значение (resultParse) можно только передать, потому что возвращать уже некуда.
function getResultOneGame(error, resultParse) {
if (error)
return console.error(error); // return имеет смысл только как окончание выполнения функции
return someCoolFunction(resultParse); // итак конец функции и return можно не писать
}
как вариант - вынести ссылку на конструктор в переменную и проверять по ней:
var MicrosoftMap = map.constructror;
if (map instanceof MicrosoftMap)
destroy(world);
Никита Полевой: Да, сначала оба операнда приводятся к примитивам, а потом в зависимости от их типов интерпретатор решает, суммировать их или конкатенировать. Если хоть один из них - string, то по необходимости второй операнд приводится к string и конкатенируются. Если ни один из них не sting, то они оба приводятся к Number(даже если они и так number) и суммируются.
Если вот так переопределить поведение приведения объекта, то получится как раз логичный результат ++[[]][+[]]+[+[]] === Number(1)
Object.prototype[Symbol.toPrimitive] = function (hint) {
var number = Number(this.toString());
return number === number ? number : this.toString();
}
(Фу-фу-фу так делать...)
7.1.1 toPrimitive -> OrdinaryToPrimitive шаги 3,4,5 - приведение к числу или строке отличается только порядком вызова методов toString и valueOf. В случае приведения [0] к number сначала вызывается valueOf, но согласно 19.1.3.7->7.1.13 он возвращает объект, поэтому результат игнорируется и вызывается toString, который и возвращает строку. Вот такая динамическая типизация - ожидаешь число, а получаешь строку )
j = 2 при каждом ВХОДЕ! во внутренний цикл. При i = 3 тело внутреннего цикла выполнится 1 раз и j будет равно 3, на этом выполнение внутреннего цикла прервется, т.к. 3 < 3 == false, а при следующем входе во внутренний цикл(при i = 4) его выполнение опять начнется с j = 2.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.