2013-10-02 2 views
-3

Просто пытаясь понять, что то, что должно после строки вернуть &, как если бы proto.constructor = Object?return !! (proto === null || proto.constructor === Object);

return !!(proto === null || proto.constructor === Object); 

Более конкретно, каким !! работает?

+0

'!!' быстрый способ сказать «убедитесь, что мы возвращаем логическое значение и преобразовать все truthy значения в' true' и все falsy значения 'false'». – h2ooooooo

+3

Зависит от того, где вы его размещаете. И что такое 'proto' – C5H8NNaO4

+1

Почему я получаю много голосов? – RuntimeException

ответ

1

Он вернет логическое значение: true или false. !! работает как двойной щелчок: если значение ложно, вы переворачиваете его в true, затем вы переворачиваете его обратно на false. В принципе, наличие !! такое же, как у !!.

Истинно, если proto === null или proto.constructor === Object.

False iff proto !== null и proto.constructor !== Object.

Поэтому, если proto.constructor = Object, оно вернет true.

-3

типError. потому что proto не определен и не равен нулю, поэтому js попытается получить атрибут «конструктор» из прото, который не существует.

+1

Откуда Вы знаете, 'proto' не определен? –

+1

Ну, это определенно не определяется вопросом. Однако, 'typeError', я думаю, вы имеете в виду' ReferenceError'. В частности, 'ReferenceError: proto не определен'. – meagar

+0

Этот код, очевидно, является частью скрипта, где может быть определен параметр 'proto'. –