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