介绍
我们将探讨JavaScript的基本基础之一,即对象,并具体讨论为什么JavaScript中的所有内容都是对象,或者确实如果是?
背景
JavaScript对值进行任意区分:
原始值和对象。
原始值包括布尔值,数字,字符串,null和undefined。
虽然JavaScript中的其他所有内容都被认为是一个对象,这意味着窗口,JSON,Math甚至函数和数组都是对象。本文后面有关函数和数组的更多信息。
对象和原始值之间的差异
对象和原始值之间的主要区别之一是它们的比较方式。
通过引用比较对象。
所有基元都按值进行比较。
对象属性是可变的,即它们可以被改变。可以添加,删除或更改对象的属性。
原始值类型属性是不可变的,即它们不能被更改。
JavaScript中的一切都是对象吗?
如前所述,JavaScript中的值类型分为原始值和对象。
对象还包括数组,函数,内置对象和用户定义的对象。但有趣的是,原语有时也像对象一样!
我们先来看看数组。
数组确实是特殊对象,其中属性被索引,这使我们能够使用索引访问它们。
我们来看看函数。
所以功能确实是对象。
现在,有时原始值也像对象一样。
这可以用JavaScript中的string值类型来解释。
所以这就是它的工作原理。
当我们访问length属性时stringVariable,它将被转换为Object并length访问该属性。访问属性后,它将返回原始值string。
这就是为什么JavaScript中几乎所有东西都是对象!