“'值'== typeof X”VS“typeof X =='value'”的任何差异

时间:2012-07-06 09:53:55

标签: javascript

检查typeof运算符的结果的两个版本之间是否存在任何差异(编译器/解释器/ juju明智等)?

我在问,因为我很多次看到第一个版本,好像它遵循一个概念,而第二个版本更具可读性,更好地描述了我的意图:主要是我对变量的类型感兴趣而不是字符串与某事物相等。

更新: 虽然它不是原始问题的一部分,但值得注意的是,当你要检查平等时,x == y绝不是一个好的做法。应该总是使用===运算符。

2 个答案:

答案 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)

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