Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как вы считаете правильнее? (https://javascript.ru/forum/misc/55823-kak-vy-schitaete-pravilnee.html)

Nikolay256 15.05.2015 23:15

в данном случае this это объект window. Да, это понятно. Спасибо, что поправил.

nerv_ 17.05.2015 12:38

Цитата:

Сообщение от Nikolay256
нативный js так не умеет

используй транслятор

Safort 17.05.2015 12:53

Цитата:

Сообщение от Nikolay256 (Сообщение 371056)
function multiply(a, b = 1) {}
нативный js так не умеет

Просто ты сидишь с хромоподобного браузера, который этого ещё не поддерживает. Открой консоль FF и запусти там свой код - всё будет работать. Если хочешь поддержку во всех браузерах, то используй Babel.js.

Aetae 17.05.2015 14:23

fuckJS, забудь про with, ибо в стрикте он всё равно не работает.

demoniqus 19.05.2015 10:15

typeof null === typeof {} === 'object' - в этом случае ты рискуешь впоследствии обратиться к null, как к объекту и при этом получить ошибку
С другой стороны
options = 1 , options ? options : {} тоже может дать неожиданный результат, если требуется объект с ограниченным набором возможных полей... обычно так бывает в универсальных методах, где объекты, например, копируются в цикле, а не по полям. Ну и остается риск перетереть поведение всего типа, если обращаешься где-нибудь к прототипу этого объекта. Я подобную ошибку случайно нашел в весьма крупном проекте, причем эта ошибка проявлялась только в IE и потому была трудно уловима. А ведь из-за нее мог грохнуться пользовательский интерфейс...

Я всегда делаю комплексную проверку typeof options === typeof {} && options ? options : {} - в этом случае всегда получишь объект.

Erolast 19.05.2015 10:19

Цитата:

нативный js так не умеет
Это и есть нативный JS. Новая версия просто.

Nikolay256 20.05.2015 16:40

Цитата:

Это и есть нативный JS. Новая версия просто.
когда такую конструкцию утвердят основные браузеры, я его буду считать нативным, а пока считаю баловством.

Цитата:

options = 1 , options ? options : {} тоже может дать неожиданный результат, если требуется объект с ограниченным набором возможных полей... обычно так бывает в универсальных методах, где объекты, например, копируются в цикле, а не по полям. Ну и остается риск перетереть поведение всего типа, если обращаешься где-нибудь к прототипу этого объекта. Я подобную ошибку случайно нашел в весьма крупном проекте, причем эта ошибка проявлялась только в IE и потому была трудно уловима. А ведь из-за нее мог грохнуться пользовательский интерфейс..
ты имеешь ввиду перезапишется по ссылке? давай по подробнее) интересно, что за баг был

Erolast 20.05.2015 18:19

Цитата:

когда такую конструкцию утвердят основные браузеры, я его буду считать нативным, а пока считаю баловством.
Трансляторы для лохов?

Цитата:

ты имеешь ввиду перезапишется по ссылке?
alert(typeof null == "object");

nerv_ 20.05.2015 19:30

Цитата:

Сообщение от Erolast
Трансляторы для лохов?

тссс... не шумите. Не упрощайте людям жизнь :D

Safort 20.05.2015 20:11

Erolast,
Цитата:

Трансляторы для лохов?
Для отморозков слабых умом. Настоящие профи пишут на ES3. В одну строку.


Часовой пояс GMT +3, время: 00:18.