最近有一位面试官要求定义对象和基元之间的区别。考虑到所有语言都以原语开头,这似乎是一个奇怪的问题。你会如何回答这个问题?
我还应该注意到,这次面试是针对前端开发职位的,因此他所指的语言(我认为)是 JavaScript。
最佳答案
原语是一种不由其他数据类型组成且不能进一步分解的数据类型。它就像编程场景中的原子。我说原子是因为原子是物质的基本单位,并且没有任何东西可以从中衍生出来。
我的意思是,C 中的 int
不能分解为更小的数据类型。另一方面,对象可以被认为是由多个原始类型组成的分子。例如,string
是 C++ 标准库的一部分;但是,它是一个对象,内部由较小的数据类型组成并包含方法。
需要注意的是,并非所有面向对象的语言都是基于类的(例如 Javascript)。您无法在 Javascript 中定义类,因此这里的对象有很大不同。尽管 Javascript 中的所有内容都是对象(Ruby 也是),但 Number 对象实际上是内部原语的包装器。
关于javascript - 对象与原始对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8643276/