前言
今天我来带大家走进包装类,在进入之前我们先了解一下什么是什么是原始类型、引用类型和对象。
原始类型
原始类型,也称为基本数据类型,是编程语言中最基本的数据类型,通常用于存储简单的值,它们不是对象。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);
运行结果为:
我们来分析一下这个案例:
1.在堆中,我们创建一个对象 obj,该对象包含一个属性 name,其值为 '小花'。在堆中分配了一个的地址存储这个对象。
2.在栈中,我们在词法环境引入变量 obj,。接着,在词法环境引入 lw 并将其值设置为 obj,因此 lw 和 obj 都按照地址寻找到堆,然后发现了obj对象中的 name 属性我们修改了 obj 对象的 name 属性,将其值从 '小花' 修改为 '小红'
3.最后,我们打印 lw.name 的值,由于 lw 和 obj 都引用同一个对象,所以它们共享相同的属性。因此,console.log(lw.name) 打印的结果是 '小红'。
对象
对象是一种复合数据类型,它用于存储和组织多个值(数据)以及与这些值相关联的操作或方法。
下面看个案例:
let obj = {
name: '丁总',
age: 18
}
let girl = 'girlFriend'
obj[girl] = '小红'
console.log(obj);
我们创建了一个对象,并且这个对象有name和age属性。我们可以通过obj[girl]
来获取属性的值
对象的创建
-
var obj = {} // 对象字面量 | 对象直接量
-
let obj = new Object() // 构造函数
-
自定义构造函数
-
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);
当引擎执行到str.length = 2
的时候,会生成一个new String('abcd').length = 2
,.length
这个方法是字符串本身就存在方法,我们无法对它进行操作,所以最后就会输出字符串的长度。
总结
包装类的原始值是不能拥有属性和方法的,属性和方法是对象独有的。
这就是今天的所有内容,希望读完这篇文章对你能有所帮助。