菜鸟入门第七天——包装类

79 阅读3分钟

前言

今天我来带大家走进包装类,在进入之前我们先了解一下什么是什么是原始类型、引用类型和对象。

原始类型

原始类型,也称为基本数据类型,是编程语言中最基本的数据类型,通常用于存储简单的值,它们不是对象。JavaScript中的原始类型有5种:

1、number(数字类型):用于表示数字数据,包括整数和浮点数。

2、string(字符串类型):用于表示文本数据。

3、boolean(布尔类型):用于表示逻辑值,只有两个可能的值:true 和 false。

4、null:表示一个空值或缺失的值。

5、undefined:表示一个未初始化的变量或缺少值的变量。

引用类型

引用类型是编程中的一个概念,它用于指代那些存储引用(或指针)而不是实际数据值的数据类型。

引用类型包括:1.对象 2.数组 3.函数

下面我们来看个案例:

let obj = {
    name: '小花',
}
let lw = obj
obj.name = '小红'
console.log(lw.name);

运行结果为:

image.png

我们来分析一下这个案例:

1.在堆中,我们创建一个对象 obj,该对象包含一个属性 name,其值为 '小花'。在堆中分配了一个的地址存储这个对象。

2.在栈中,我们在词法环境引入变量 obj,。接着,在词法环境引入 lw 并将其值设置为 obj,因此 lw 和 obj 都按照地址寻找到堆,然后发现了obj对象中的 name 属性我们修改了 obj 对象的 name 属性,将其值从 '小花' 修改为 '小红'

3.最后,我们打印 lw.name 的值,由于 lw 和 obj 都引用同一个对象,所以它们共享相同的属性。因此,console.log(lw.name) 打印的结果是 '小红'。

image.png

对象

对象是一种复合数据类型,它用于存储和组织多个值(数据)以及与这些值相关联的操作或方法。

下面看个案例:

let obj = {
    name: '丁总',
    age: 18
}
let girl = 'girlFriend'
obj[girl] = '小红'
console.log(obj); 

image.png

我们创建了一个对象,并且这个对象有name和age属性。我们可以通过obj[girl]来获取属性的值

对象的创建

  1. var obj = {} // 对象字面量 | 对象直接量

  2. let obj = new Object() // 构造函数

  3. 自定义构造函数

  4. Object.create({})

包装类

包装类是将原始数据类型转化为对象,以便在面向对象的上下文中使用它们,或者提供额外的功能和方法来操作这些数据类型。

下面我们通过一个案例来分析:

var arr = [1, 2, 3, 4, 5]
arr.length = 2
console.log(arr);

var str = 'abcd'
str.length = 2
console.log(str.length); 

image.png

当引擎执行到str.length = 2的时候,会生成一个new String('abcd').length = 2.length这个方法是字符串本身就存在方法,我们无法对它进行操作,所以最后就会输出字符串的长度。

总结

包装类的原始值是不能拥有属性和方法的,属性和方法是对象独有的。

这就是今天的所有内容,希望读完这篇文章对你能有所帮助。