在检查typeof运算符的结果的两个版本之间(编译器/解释器/juju wise等)有什么不同吗?
我之所以问这个问题,是因为我经常看到第一个版本,好像它遵循了一个概念,而第二个版本更具可读性,也更好地描述了我的意图:首先,我感兴趣的是变量的类型,而不是字符串是否等于某个东西。
更新:虽然这不是原始问题的一部分,但值得注意的是,当您要检查相等时,x == y从来都不是一个好的做法。为此,应该始终使用===运算符。
发布于 2012-07-06 17:56:36
更新
在功能上没有区别,但似乎在JavaScript中,无论哪种方式都会出现错误(这很好,这要归功于JS):
Invalid left-hand side in assignment因此,这似乎只是其他编程语言开发人员的一种习惯。例如在PHP中,如果你这样做了:
if ($var = 'foo') PHP会默默地将foo作为值赋给$var,但会使用以下内容:
if ('foo' = $var) 它将抛出一个错误。
我之所以这么问,是因为我经常看到第一个版本
他们的所作所为没有区别。但是第一个版本会抛出错误,如果你碰巧写到:
'value' = typeof X请注意=而不是==或===
这通常是很好的做法,来自其他语言的人在JavaScript中也有这样做的习惯。
发布于 2012-07-06 17:57:18
没有区别,因为等价操作将返回相同的东西,而不管它是以哪种方式返回的。
https://stackoverflow.com/questions/11359938
复制相似问题