检查typeof运算符的结果的两个版本之间是否存在任何差异(编译器/解释器/ juju明智等)?
我在问,因为我很多次看到第一个版本,好像它遵循一个概念,而第二个版本更具可读性,更好地描述了我的意图:主要是我对变量的类型感兴趣而不是字符串与某事物相等。
更新: 虽然它不是原始问题的一部分,但值得注意的是,当你要检查平等时,x == y绝不是一个好的做法。应该总是使用===运算符。
答案 0 :(得分:4)
在功能方面没有区别,但似乎在JavaScript中,无论采用哪种方式都会出错(这很好,多亏了JS):
Invalid left-hand side in assignment
所以它似乎只是其他编程语言开发人员的习惯。例如,在PHP中,如果你这样做:
if ($var = 'foo')
PHP会默默地将foo
作为值分配给$var
,但请注意以下内容:
if ('foo' = $var)
会抛出错误。
我在问,因为我多次看到第一个版本
他们所做的事情没有区别。但是,如果您碰巧写下第一个版本会抛出错误:
'value' = typeof X
请注意=
而不是==
或===
这通常是一种很好的做法,其他语言的人也有习惯在JavaScript中这样做。
答案 1 :(得分:0)
没有区别,因为等价操作将返回相同的东西,无论它是哪个方向。