javascript - a.style.display : Value assigned to primitive will be lost

标签 javascript intellij-idea

考虑这个 JavaScript 片段:

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

IntelliJ IDEA 2016.2 突出显示 a.style.display 并给出以下提示:

Value assigned to primitive will be lost

Checks for improper usage of wrappers for JavaScript primitive types. Also, warning will be produced when property of primitive type is modified, as assigned value will be lost

IntelliJ IDEA hint

CSSStyleDeclaration不是基本类型,因此对 display 的赋值不会丢失。

String是包装器类型。我如何(不正确地)使用它?

该代码似乎在 Chrome 和 Edge 中运行良好。怎么回事?

最佳答案

您的代码没有任何不当之处,IntelliJ 的类型推断有点困惑(JavaScript 的这一方面尤其令人困惑)。

它的 linter 看到一个字符串并假设你会尝试这样的事情:

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

primitive.vowels;
// => undefined

这会导致“丢失”值(value)。

要进一步了解 JavaScript 的这个奇怪部分,我推荐 Angus Croll 的优秀深度文章 here .

关于javascript - a.style.display : Value assigned to primitive will be lost,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38463552/

相关文章:

java - 方法签名的代码检查

java - 如何在 IntelliJ IDEA 中从 -source 1.6 更改为 -source 7

scala - 如何在 IntelliJ 中添加其他 Scala 项目作为依赖项(Scala 插件)

intellij-idea - 如何使用 Intellij IDEA 的全部功能?

javascript - 如何使用 JavaScript 在 HTML 文档中插入文本?

javascript - 将值传递给 jQuery 成功函数中的 Bootstrap 模式

javascript - AJAX 在 codeigniter 上返回 NaN

java - 构建任务和 sourceCompatibility = 1.7、gradle 5.3 的问题

javascript - Magento 添加 Js 到页脚

javascript - 将变量传递到近球体(Error Obj Obj)#appcelerator