2016-07-19 97 views
10

考慮這個JavaScript片段:a.style.display:分配給原始值將丟失

var a = document.createElement("a"); 
a.style.display = "none"; 

IntelliJ IDEA的2016.2亮點a.style.display並給出了這樣的提示:

值分配給原始會丟失

檢查JavaScript原始類型的包裝的不當使用情況。此外,當原始類型的屬性被修改將產生警告,因爲分配的值將會丟失

IntelliJ IDEA hint

CSSStyleDeclaration是不是一個基本類型,從而分配給display不會丟失。

String是一個包裝類型。我如何使用它(不正確)?

該代碼似乎在Chrome和Edge中工作正常。這是怎麼回事?

+0

http://stackoverflow.com/questions/37923424/value-assigned-to-primitive-will-be-lost – Rayon

+0

我見過這個問題,但並沒有真正理解評論。另外,我在這裏沒有循環甚至沒有功能。 – xehpuk

+0

你是否在函數中? – Rayon

回答

0

在代碼中沒有任何不妥之處,IntelliJ的類型推斷變得有點困惑(這方面的JavaScript特別令人困惑)。

其棉短絨看到一個字符串,假設你會嘗試這樣的事:

var primitive = "september"; 
primitive.vowels = 3; 

primitive.vowels; 
// => undefined 

,這將導致一個「丟失」的價值。

爲了進一步理解這個怪異的JavaScript部分,我推薦Angus Croll的優秀文章here