Есть ли разница между typeof (myVariable) по сравнению с typeof myVariable?
Оба работают, но, исходя из PHP, я не понимаю, почему эта функция может использовать скобки или нет.
Ответ 1
Ключевое слово typeof представляет собой оператор в Javascript программировании.
Правильное определение оператора typeof в спецификации :
typeof[(]expression[)] ;
Это причина использования typeof как typeof(expression) или typeof expression.
Придя к тому, что это было реализовано как таковое, вероятно, позволит разработчику справиться с уровнем видимости в его коде. Таким образом, можно использовать чисто условное выражение, используя typeof:
if ( typeof myVar === 'undefined' )
// ...
;
Или сформулировать более сложное выражение с помощью () для удобства чтения:
В некоторых случаях использование скобок с оператором typeof делает написанный код менее склонным к двусмысленности.
Возьмем, например, следующее выражение, в котором оператор typeof используется без круглых скобок. Вернул бы typeof тип результата конкатенации между пустым строковым литералом и номером или типом строкового литерала?
typeof "" + 42
Рассматривая определение оператора, указанное выше, и приоритет операторов typeof и +, кажется, что предыдущее выражение эквивалентно:
typeof("") + 42 // Returns the string `string42`
В этом случае использование круглых скобок с typeof приведет к большей ясности в том, что вы пытаетесь выразить: