Javascript “为什么?”;“类型”;不需要括号吗?

Javascript “为什么?”;“类型”;不需要括号吗?,javascript,typeof,Javascript,Typeof,typeof(myVariable)与typeof myVariable之间有什么区别吗 这两个函数都可以工作,但是来自PHP,我不明白为什么这个函数可以使用括号 关键字typeof表示Javascript编程中的运算符 中typeof运算符的正确定义为: 这就是使用typeof作为typeof(expression)或typeof expression的原因 至于为什么要实现它,很可能是为了让开发人员处理代码中的可见性级别。因此,可以使用typeof使用干净的条件语句: if ( typeof

typeof(myVariable)
typeof myVariable
之间有什么区别吗


这两个函数都可以工作,但是来自PHP,我不明白为什么这个函数可以使用括号

关键字
typeof
表示
Javascript
编程中的运算符

typeof
运算符的正确定义为:

这就是使用
typeof
作为
typeof(expression)
typeof expression
的原因

至于为什么要实现它,很可能是为了让开发人员处理代码中的可见性级别。因此,可以使用typeof使用干净的条件语句:

if ( typeof myVar === 'undefined' )
  // ...
;
或使用以下命令定义更复杂的表达式:

编辑:

在某些情况下,使用带有
typeof
运算符的括号会使编写的代码不太容易产生歧义

以下面的表达式为例,其中使用的
typeof
运算符不带括号。
typeof
会返回空字符串文字和数字之间连接结果的类型,还是字符串文字的类型

typeof "" + 42
查看上述运算符的定义和,前面的表达式似乎等效于:

typeof("") + 42 // Returns the string `string42`
在这种情况下,使用带有
typeof
的括号将使您试图表达的内容更加清晰:

typeof("" + 42) // Returns the string `string`

要添加,它是一个类似于
+
-
的运算符,因为
typeof
是一个运算符,而不是一个函数。这是一个真正的问题,不是一个真正的问题。为什么关闭?这个问题非常重要。。。哪一个是正确的?一个是不推荐的,还是可以用来覆盖更多向后兼容的浏览器?只是对一个近6年的答案吹毛求疵:我认为
var isTrue
缺少一个括号。有三个左括号和四个右括号。这让我想到了一点——有括号并不能让代码变得可读。在某些情况下,多余的括号只会让事情更难理解,感谢@JerriKangasniemi指出错误。是的,我同意你关于可读性的说法,我只是做了一个编辑。事实上,此实现背后的真正原因是允许在
运算符的范围内使用复杂表达式(例如赋值或使用三元运算符),这通常会使代码很难被人类读取。可能
(typeof“”)+42//返回字符串“string42”
?同样明确无误。
typeof
指定为。MSDN链接已过时;这不是“正确”的规格。@SebastianSimon更新了链接,谢谢!
typeof("") + 42 // Returns the string `string42`
typeof("" + 42) // Returns the string `string`