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