我可以为JavaScript中的空初始化属性赋值吗?

我可以为JavaScript中的空初始化属性赋值吗?,javascript,null,initialization,phpstorm,type-mismatch,Javascript,Null,Initialization,Phpstorm,Type Mismatch,我正在创建一个JavaScript对象,希望能够区分未设置属性和空属性。因此,我在创建时将其属性初始化为null。然后我可以用特定的值填充属性。有时这些值是空的(例如'表示字符串属性,0表示数字)。我有这样的想法: var myObject = { aString: null, setEmpty() { this.aString = ''; } } 我正在用PhpStorm编程,它抱怨:“分配的表达式类型字符串不能分配给null类型”。好吧

我正在创建一个JavaScript对象,希望能够区分未设置属性和空属性。因此,我在创建时将其属性初始化为
null
。然后我可以用特定的值填充属性。有时这些值是空的(例如
'
表示字符串属性,0表示数字)。我有这样的想法:

var myObject = {
    aString: null,

    setEmpty() {
        this.aString = '';
    }     
} 

我正在用PhpStorm编程,它抱怨:“分配的表达式类型字符串不能分配给null类型”。好吧,
null
在JavaScript中是一种特殊的对象类型,所以我面临一个类型不匹配的问题。但是我如何才能区分空值和未初始化值呢?

JavaScript是弱的、动态类型的。你绝对可以做到。PHPStorm报告的错误对JavaScript无效。

您可以,因为JavaScript的键入能力很弱

这样做是否违反了一些良好的做法?是否使用
“使用严格”更改这方面的任何内容?不,您没有违反任何最佳实践,动态键入是一种语言功能。我这样做时是否违反了一些良好实践?是否使用
“使用严格”更改这方面的任何内容?@texnic这都是可以测试的。将它插入JSFIDLE或任何浏览器的控制台,您都可以自己查看。显然,我已经对它进行了测试,我的程序运行良好。我只是想了解为什么PhpStorm(它知道我是用JS编写的)会将其报告为错误。在这一点上没有什么显而易见的。PHPStorm报告错误的原因是您正在使用PHPIDE编写JavaScript。同样的错误在WebStorm中也会出现,WebStorm绝对是一个JavaScript IDE。在Javascript中,它看起来根本不像一个有效的警告(默认情况下是一个“弱警告”)。也许这是某种错误,JetBrains的人在他们的游戏中看起来很出色。