2015-05-26 76 views
-1

在JavaScript中,這種模式如何運作,你會用什麼名字來引用它?在JavaScript混淆比較︰ie:(x === y(e))

var valid = (value === value2 (car.color)); 

又是怎樣從不同:

var valid2 = if(value === value2){ car.color } 
+3

這就是所謂的布爾表達式。你的第二個例子甚至不會解析爲有效的Javascript,因爲'if'是一個語句,而不是表達式的一部分。您正在使用的操作符稱爲嚴格相等(即等值和相等類型)。 –

+1

第一個示例'var valid =(value === value2(car.color));'也是無效的JavaScript並且不會被解析。如下所述,如果value2是一個已定義的函數,那麼您的示例_will_parse,儘管函數名稱和括號括起來的參數之間的空間非常不標準。 –

+0

是的,第二個將解析。 'valid'將被分配布爾表達式的結果。 –

回答

1

看來,value2是一個函數,所以如果value2回報的東西,等於value然後validtrue,否則false。然而,您的第二條語句var valid2 = if(value === value2){ car.color }, 無效的JavaScript。

2

這些甚至都不相同。在第一個示例中,您有一個函數value2(),它接受變量car.color作爲參數,返回一些內容,然後將其與value進行比較。但這並不完全清楚,value2是這裏的代碼中使用的聲明或命名的一個函數,但是,間距並不能說明它的用途。

您的第二個示例將無法正確解析,因爲您無法將變量分配給If語句。如果可能的話,它仍然是沒有意義的,因爲如果value == value2,你輸入一個代碼塊,唯一的聲明是無效的。