Typescript - What is the difference between null and undefined?
我想知道在typescript中,空值和未定义值的区别是什么。我知道在javascript中,可以同时使用这两种方法来检查变量是否没有值。但在打字稿中,我想确切地知道两者的区别,以及何时最好使用它们。谢谢。
- 不同之处与javascript:stackoverflow.com/q/5076944/6680611相同
- @我不认为在typescript中看到它和在javascript中一样是正确的。事实上,typescript样式指南(github.com/microsoft/typescript/wiki/…)说只使用未定义的。原因是在typescript中,问号是可选的。可选项具有未定义且不为空。这意味着两者之间有很大的区别。就像typescript是javascript的超集,所以javascript中的所有内容都是合法的。但理想情况下,您不应该在typescript中使用空值。
- @Elishasterngold阅读了样式指南的第一部分,它只是供贡献者打印脚本本身。在您自己的项目中,在typescript中使用null没有任何错误。此外,任何风格上的原因选择一个比另一个将同样有效的JS无论如何。
- @JohnMontgomery认为样式指南认为有些事情是有原因的。我已经在评论中解释了原因。
- @Elishasterngold是的,这是因为"我们选择了他们中的许多人是为了团队的一致性。"他们两次说这不是typescript社区的指南。
- @约翰蒙哥马利我不同意
- @你不同意导游说的话吗?
这篇文章很好地解释了这些差异。它们在typescript中与在javascript中相同。
至于应该使用什么:typescript coding styleguide itselft声明您应该始终使用未定义的,而不是空的:字体脚本样式指南
- 你有什么理由解释为什么undefined比null更受欢迎吗?不幸的是,这些指导方针并不能解释这一点。
- 我可以想象这是因为检查(例如在if语句中)或者只是为了保持一致。
- @Alexanderabakumov这是一个解释。
- 请注意,样式指南是专门针对那些为typescript做出贡献的人的,因此它是一致的,并且通常不适用于typescript程序员。为你自己的项目做你想做的,或者你的团队同意做的。
- @推你的链接断了:-(
- @皮波也许这就是我所联系的。但可能不同
值"未定义"表示变量已声明,但尚未分配任何值。所以,变量的值是"未定义的"。
另一方面,"空"是指一个不存在的对象,基本上是指"空"或"无"。
可以手动将值"未定义"分配给变量,但不建议这样做。因此,将"null"分配给变量,以指定该变量不包含任何值或为空。但"undefined"用于检查变量在声明后是否分配了任何值。