其他语言中是否有类似的“未定义”概念?

use*_*949 2 javascript undefined

我知道 undefined 不等于 null。但是其他语言(例如 c#、C++ 或 java)中是否有类似的概念?

Dao*_*Wen 6

您列出的所有语言(C#、C++、Java)都是静态类型语言。在静态类型语言中,您需要在编译时知道每个表达式的类型,因此“未定义”通常没有意义,因为这将是类型错误。正如您已经指出的,空指针/引用可能是大多数静态类型语言中最接近“未定义”值的东西。

JavaScript 是动态类型的,这就是它具有undefined. 如果您查看其他动态类型语言,您可以找到类似的概念。例如,Python 的值与JavaScriptNone有一些相似之处。undefined

  • Python 中的“None”更像是“null”。有时,当 JS 给你“未定义”时,例如访问未分配的变量、不存在的字典键或对象方法,Python 通常只会抛出异常。更接近的例子是 Lua 中的“nil”,它扮演着两者的角色。 (2认同)