2

检查 typeof 运算符结果的两个版本之间是否有任何区别(编译器/解释器/juju wise 等)?

我之所以问是因为我经常看到第一个版本,就好像它遵循了一个概念,而第二个版本更具可读性并且更好地描述了我的意图:主要是我对变量的类型感兴趣,而不是字符串是否相等有东西。

更新:虽然它不是原始问题的一部分,但值得注意的是,当您要检查相等性时,x == y 绝不是一个好习惯。为此,应始终使用 === 运算符。

4

2 回答 2

4

更新

在功能方面没有区别,但似乎在 JavaScript 中,无论哪种方式都会出现错误(这很好,感谢 JS):

Invalid left-hand side in assignment

所以这似乎只是其他编程语言的开发人员的一种习惯。例如在 PHP 中,如果你这样做了:

if ($var = 'foo') 

PHP 将默默地赋值foo$var但有以下内容:

if ('foo' = $var) 

它会抛出一个错误。


我问是因为我经常看到第一个版本

他们做什么没有区别。但是,如果你碰巧写了第一个版本会抛出一个错误:

'value' = typeof X

注意=代替=====

这通常是一种很好的做法,其他语言的人也习惯在 JavaScript 中这样做。

于 2012-07-06T09:56:36.200 回答
0

没有区别,因为等价操作将返回相同的东西,无论它是哪种方式。

于 2012-07-06T09:57:18.490 回答