Существуют ли какие-либо важные отличия (семантические, связанные с производительностью и т. Д.) Между (1) и (2)?(obj || {}) vs Object (obj)
var obj = obj || {};
var obj = Object(obj);
контекст. Первый способ обмена переменными по шаблонам Django и моим js-файлам. Я просто наткнулся на раздел в Rauschmayer 2014 ("Функции для преобразования Boolean, Number, String, и объект", стр 79.), Где он описал Object(obj)
следующим образом:
obj
еслиobj
является объектом,{}
еслиobj
являетсяundefined
илиnull
,- [завернутые примитивным], если
obj
является элементарным значением.
Учитывая, что (очень неформальная) семантика (особенно первые два предложения), мне кажется, что мы можем использовать (2) везде, где мы будем использовать (1), но я не совсем уверен, какие последствия это будет.
Rauschmayer, Axel (2014) Speaking JavaScript (бесплатно читать онлайн).
'1' - распространенная идиома,' 2' - нет. Чтобы ваш код был понятен большинству программистов, придерживайтесь обычного синтаксиса. – Barmar