JavaScript的变量:变量值的数据类型

特别声明:小站对部分原创文章已开启付费阅读,并开通年费VIP通道,年费价格为 ¥365.00元。如果您喜欢小站的内容,可以点击开通会员进行全站阅读。如果您对付费阅读有任何建议或想法,欢迎发送邮件至: airenliao@gmail.com!(^_^)

JavaScript的每个变量都会有有一个变量值,变量值都有对应的数据类型。在JavaScript中变量有两种不同的数据类型:基本类型引用类型。在不同的地方对这两种数据类型的称呼也略有不同。比如,基本类型又称之为原始类型(拥有方法的类型或者可变类型),引用类型又称之为对象类型(不能拥有方法的类型或者不可变类型)。不管怎么称呼,都是依据数据类型的特点来命名的。

JavaScript基本类型和引用类型有哪些

  • 基本类型:指的是简单的数据段。在JavaScript中有五种基本数据类型:undefinednullbooleannumberstring。基本类型都是按值访问的,就是说可以操作保存在变量中的实际值
  • 引用类型:对象、数组、函数。对象是属性和方法的集合。引用类型可以拥有属性和方法,属性又可以包含基本类型和引用类型。引用类型的值保存在内存中的对象,JavaScript不能直接操作对象的内存空间,操作对象时,实际上是操作对象的引用而不是实际的对象。引用类型的值是按引用访问的。

如何理解基本类型和引用类型

如何能更好的理解JavaScript中的基本类型和引用类型,还是通过代码来阐述,或许能说得更清楚。

比如在代码中声明了一个变量:

var name = "大漠";

"大漠"是一个string类型,根据前面所说的,它属于JavaScript中的基本类型。这时值是这样储存的:

基本类型和引用类型

紧接着:

var name = "大漠";
var name2 = name;

这时name的值被复制了一份,并且赋值给了name2。在此,name保存的值是"大漠"。当使用name的值为初始化name2时,name2也保存了值"大漠"。但namename1中的值完全是独立的,该值只是name2"大漠"的一个副本。此后,这两个变量可以参与任何操作而不会相互影响。

var name = "大漠";
var name1 = name;
var name = "W3cplus";

console.log(name);  // => W3cplus
console.log(name1); // => 大漠

下图更能形象的展示复制基本类型值的过程:

基本类型和引用类型

上面通过代码阐述了:如果从一个变量向另一个变量复制基本类型的值,会在变量对象上创建一个新值,然后把该值复制到为新变量分配的位置上。当从一个变量向另一个变量复制引用类型的值时,同样也会将存储在变量对象中的值复制一份放到新变量分配的空间中。不同的是,这个值的副本实际上是一个指针,而这个指针指向存储在堆中的另一个对象。

说这么多理论还真不如上代码来得实际,而又简单。来看下面一个示例:

var oPerson = {
    name: "大漠"
}

{name: "大漠"}是一个Object,它属于引用类型,赋值前后值是这样存储的:

基本类型和引用类型

接下来看一下引用类型复制:

var oPerson = {
    name
剩余80%内容付费后可查看

如需转载,烦请注明出处:https://www.w3cplus.com/javascript/variable-value-data-types.html

如果文章中有不对之处,烦请各位大神拍正。如果你觉得这篇文章对你有所帮助,打个赏,让我有更大的动力去创作。(^_^)。看完了?还不过瘾?点击向作者提问!

赏杯咖啡,鼓励他创作更多优质内容!
返回顶部