2013-08-05 27 views

回答

16

您濫用條件運算符作爲if聲明,這就是爲什麼你得到該說明。代碼中的實際工作是作爲表達式的副作用完成的,表達式的結果將被忽略。

作爲一個真正的if聲明,這將是:

if (dir === 'next') { 
    ++$currentSlide; 
} else { 
    --$currentSlide; 
} 

,如果你使用它作爲一個實際的表達式可以使用條件運算符:

$currentSlide += dir === 'next' ? 1 : -1; 
+4

* Shudder *在後者。 –

+1

你不會對'++ x;'在一行上自己得到同樣的警告嗎? – sje397

+3

@DaveNewton:'$ currentSlide + = dir ==='next'|| -1;':-) – Bergi

3

如果你這樣寫,它會通過嗎?

$currentSlide = (dir === 'next' ? $currentSlide + 1 : $currentSlide - 1); 

Linters和hinters通常不喜歡in/decrements,因爲它們對bug很敏感。

0

試試這個語法:

$currentSlide = (dir === 'next' ? $currentSlide+1 : $currentSlide-1); 
7

在一般情況下,禁用「期望一個賦值或函數調用,而是看到一個表達式。'警告,你可以做/ * jshint expr:true */

相關問題