C# JavaScript中有什么“?”存在?

C# JavaScript中有什么“?”存在?,c#,javascript,types,nullable,C#,Javascript,Types,Nullable,已经阅读了MDN中的一些文档: 当我看到概述部分时,我想知道这是什么意思 在C#中有一种可为空的数据类型: 与文档截图中的JS示例语法相似: int? num = null; 这意味着,类似于结构的int值类型不仅可以保存某些值,还可以为其分配null值 但是!JavaScript有一个duck类型,它也是一个弱类型化的动态语言。在JS中,我可以为任何值指定null或undefined,甚至不设置任何内容,它不像C#那样是一种严格的语言 所以。。。它不能像C#中那样是可空类型,那么它是什

已经阅读了MDN中的一些文档:

当我看到概述部分时,我想知道这是什么意思

在C#中有一种可为空的数据类型:

与文档截图中的JS示例语法相似:

int? num = null;
这意味着,类似于结构的
int
值类型不仅可以保存某些值,还可以为其分配
null

但是!JavaScript有一个duck类型,它也是一个弱类型化的动态语言。在JS中,我可以为任何值指定null或undefined,甚至不设置任何内容,它不像C#那样是一种严格的语言


所以。。。它不能像C#中那样是可空类型,那么它是什么?

这是一个接口定义,不是实际的javascript代码。这只意味着该值可以是
null
。它的意思与C完全相同#


请注意,在javascript中,您没有声明返回值,您可以看到返回值。

请注意“可选”一词。这就是问号所指的。如果它不是Javascript,那么它是什么语言?我想它与C#中的不一样。C#中的可空类型是一个相当复杂的概念,而不仅仅是精确值或空值的setter。但作为对MDN文档正确理解的帮助-谢谢!我不知道。可以将其视为一种接口描述语言,用于描述接口,而不是特定于语言。可以认为,DOM可以从JavaScript、C++、java、.NET访问。javascript定义不包括方法的返回类型,这是其他语言所需要的。