目录
前言:
1.什么是对象:
1.1面向对象是干什么的?
1.1.1封装:
1.1.2继承:
1.1.3多态:
1.2面向过程与面向对象:
1.2.1面向过程:
1.2.2面向对象:
1.3JavaScript中的对象
1.4内置对象:
2.关于数组:
2.1数组的定义:
2.2数组的索引:
2.3数组的长度
2.4数组的修改
2.5其他注意事项:
2.5.1没有负数索引:
2.5.2没有切片操作:
2.5.3数组是可变的:
2.6数组的方法:
2.6.1 push :
2.6.2 pop:
2.6.3 unshift :
2.6.4 shift:
2.6.5splice:
2.6.6 toString :
2.6.7 reverse:
3.关于字符串:
3.1声明方式:
3.1.1字面量方式:
3.1.2构造函数方式:
3.1.3字符串属性:
3.1.3.1.length:这是一个属性,用于获取字符串的长度,即字符串中字符的数量。
3.1.4字符串方法:
3.1.4.1toUpperCase() 和 toLowerCase():
3.1.4.2charCodeAt(index):
3.1.4.3substring(startIndex, endIndex):
3.1.4.4split(separator):
3.1.4.5indexOf(searchValue[, fromIndex]):
4.数学(Math)
4.1属性
4.2方法
5.日期(Date):
5.1创建日期对象
5.2Date对象的方法
结语:
前言:
经过我们前面的学习我们已经学习了很多关于JavaScript的流程控制和函数基础,今天我们就开始学习JavaScript的内置对象,
1.什么是对象:
在面向对象编程中,“对象”是一个包含数据(属性)和行为(方法)的实体。对象是类的实例,类定义了对象的基本结构和行为。在JavaScript中,对象通常是由键值对组成的,其中键是属性名或方法名,值是与该键相关联的数据或函数。
1.1面向对象是干什么的?
面向对象编程(OOP)是一种编程范式,它使用“对象”来设计软件和创建可重用的程序设计。OOP有三大主要特性:封装、继承和多态。
1.1.1封装:
封装是把数据和操作数据的函数放在一起,形成一个“对象”。这样,内部数据被保护起来,只能通过对象的方法来访问或修改,从而确保了数据的安全性和完整性。
1.1.2继承:
继承允许我们定义一个通用的类(父类或基类),然后创建更具体的类(子类或派生类)来继承父类的属性和方法。这有助于减少代码重复,提高代码的可重用性。
1.1.3多态:
多态是指允许一个接口(引用变量)引用多种实际类型,并根据实际的类型来执行对应的方法。这体现了代码的多样性和扩展性。
1.2面向过程与面向对象:
1.2.1面向过程:
关注的是“怎么做”,即按照一系列步骤或过程来执行任务。它强调的是一系列的操作和流程。
1.2.2面向对象:
关注的是“谁来做”,即使用对象来完成任务。它强调的是对象之间的交互和协作。
1.3JavaScript中的对象
在 JavaScript 中,对象就是一组键值对的集合,其中键是属性或方法的名称,值是对应的数据或函数。JavaScript 中的对象非常灵活,可以动态地添加或删除属性和方法。同时,JavaScript 也提供了一些内置的对象,如 Math、Date 等,这些对象提供了一些常用的功能和方法,方便开发者进行编程。
1.4内置对象:
JavaScript中有一些预定义的对象,如Math
、Date
、Array
等,这些被称为内置对象。它们提供了许多常用的功能和方法,以便开发者能够更轻松地编写代码。
2.关于数组:
数组(Array)在JavaScript中是一种特殊的对象,用于存储有序的数据集合。与Python中的列表类似,数组中的每个元素都有一个索引,从0开始递增。数组可以包含任意类型的数据,包括字符串、数字、布尔值、对象,甚至是其他数组。
2.1数组的定义:
let 数组名 = [数据1, 数据2, 数据3, ...];
例如:
let kylin = ['麒麟', 28, true];
在这个例子中,kylin
是一个包含三个元素的数组,分别是字符串 '麒麟'
、数字 28
和布尔值 true
。
2.2数组的索引:
数组的每个元素都可以通过其索引(下标)来访问。索引从0开始计数。
console.log(kylin[1]); // 输出 28
2.3数组的长度
.length
属性用于获取数组的长度(即数组中的元素数量)。
console.log(kylin.length); // 输出 3
2.4数组的修改
数组的元素可以通过索引来修改。
kylin[0] = '七零'; // 将数组的第一个元素修改为字符串 '七零'
2.5其他注意事项:
2.5.1没有负数索引:
在JavaScript数组中,不能使用负数作为索引来访问元素。
2.5.2没有切片操作:
与Python的列表不同,JavaScript的原生数组没有内置的切片操作。但是,可以通过其他方法(如使用slice()
方法)来实现类似切片的功能。
2.5.3数组是可变的:
数组的元素可以被修改、添加或删除。
2.6数组的方法:
JavaScript数组提供了许多内置方法,用于操作数组,如添加元素(push
)、删除元素(pop
)、查找元素(indexOf
)、排序(sort
)等。这些方法为处理数组数据提供了强大的工具。这里我也会进行一些拓展就是关于数组的方法:
2.6.1 push :
在最后追加数据.可以追加多个数据
用于在数组的末尾添加一个或多个元素,并返回新的长度。
数组.push(数据) 数组.push(数据,数据)
let arr = [1, 2, 3];
arr.push(4, 5); // 添加两个元素
console.log(arr); // 输出: [1, 2, 3, 4, 5]
2.6.2 pop:
删除最后一个数据
用于删除数组的最后一个元素,并返回该元素。
数组.pop()
let arr = [1, 2, 3, 4, 5];
let lastElement = arr.pop(); // 删除最后一个元素
console.log(arr); // 输出: [1, 2, 3, 4]
console.log(lastElement); // 输出: 5
2.6.3 unshift :
在最前面追加数据,可以追加多个数据
用于在数组的开头添加一个或多个元素,并返回新的长度。
数组.unshift(数据) 数组.unshift(数据,数据)
let arr = [3, 4, 5];
arr.unshift(1, 2); // 在开头添加两个元素
console.log(arr); // 输出: [1, 2, 3, 4, 5]
2.6.4 shift:
删除第一个数据 用于删除数组的第一个元素,并返回该元素。
数组.shift()
let arr = [1, 2, 3, 4, 5];
let firstElement = arr.shift(); // 删除第一个元素
console.log(arr); // 输出: [2, 3, 4, 5]
console.log(firstElement); // 输出: 1
2.6.5splice:
剪切数据 用于在任意位置添加/删除元素。
数组.splice(起点下标,剪切数量)
let arr = [1, 2, 3, 5, 6];
arr.splice(3, 0, 4); // 在下标3的位置插入数字4
console.log(arr); // 输出: [1, 2, 3, 4, 5, 6]
2.6.6 toString :
把数组转为字符串 数组.toString()
let arr = [1, 2, 3];
let str = arr.toString(); // 转换为字符串
console.log(str); // 输出: "1,2,3"
2.6.7 reverse:
反转数据 反转数组中的元素。
数组.reverse
let arr = [1, 2, 3, 4, 5];
arr.reverse(); // 反转数组
console.log(arr); // 输出: [5, 4, 3, 2, 1]
3.关于字符串:
在JavaScript中,字符串是用于表示文本数据的数据类型。字符串可以包含任何字符,包括字母、数字、标点符号、空格等。
3.1声明方式:
3.1.1字面量方式:
直接使用单引号(')或双引号(")来声明字符串。
let str1 = '多喝热水';
3.1.2构造函数方式:
使用new String()
构造函数来创建一个新的字符串对象。
let str2 = new String('#096');
3.1.3字符串属性:
3.1.3.1.length:这是一个属性,用于获取字符串的长度,即字符串中字符的数量。
console.log(str1.length); // 输出4,因为'多喝热水'有4个字符
3.1.4字符串方法:
3.1.4.1toUpperCase() 和 toLowerCase():
- 这两个方法分别用于将字符串中的所有字母转换为大写或小写。对于非字母字符,它们不会有任何影响。
toUpperCase()
会把所有小写字母转为大写。toLowerCase()
会把所有大写字母转为小写。
let upperStr = str1.toUpperCase(); // 将str1转为大写
let lowerStr = str1.toLowerCase(); // 将str1转为小写
3.1.4.2charCodeAt(index):
- 这个方法返回指定索引位置字符的Unicode编码。索引从0开始。
let charCode = str1.charCodeAt(0); // 获取str1中第一个字符的Unicode编码
3.1.4.3substring(startIndex, endIndex):
- 这个方法用于截取字符串的一部分,从
startIndex
开始,到endIndex
(不包含)结束。如果省略endIndex
,则截取到字符串的末尾。
let subStr = str1.substring(1, 3); // 从索引1开始,到索引3(不包含)结束的子串
3.1.4.4split(separator):
- 这个方法用于将字符串按照指定的分隔符
separator
拆分为一个数组。
let array = str1.split(''); // 使用空字符串作为分隔符,将每个字符都拆分为数组的一个元素let
array = str1.split(''); // 使用空字符串作为分隔符,将每个字符都拆分为数组的一个元素
3.1.4.5indexOf(searchValue[, fromIndex]):
- 这个方法返回指定值
searchValue
在字符串中首次出现的索引位置。如果没有找到该值,则返回-1。fromIndex
是可选参数,表示从哪个索引位置开始搜索。
let index = str1.indexOf('喝'); // 查找'喝'在str1中首次出现的位置
let indexFromPos = str1.indexOf('喝', 2); // 从索引2开始查找'喝'的位置
4.数学(Math)
4.1属性
- Math.PI: 这是一个表示圆周率π(约等于3.14159)的静态属性。在数学运算和科学计算中非常有用。
4.2方法
-
Math.random(): 这个方法返回一个在0(包含)到1(不包含)之间的伪随机数。例如,
Math.random()
可能会返回0.5712398479823749等类似的数值。 -
Math.ceil(x): 这个方法对一个数进行上舍入,即取大于或等于一个给定数字的最小整数。例如,
Math.ceil(4.7)
会返回5。 -
Math.floor(x): 这个方法对一个数进行下舍入,即取小于或等于一个给定数字的最大整数。例如,
Math.floor(4.7)
会返回4。 -
Math.round(x): 这个方法对一个数进行四舍五入为最接近的整数。例如,
Math.round(4.7)
会返回5,而Math.round(4.4)
会返回4。 -
Math.max(...values): 这个方法返回一组数中的最大值。可以传入任意数量的参数,或者传入一个数组然后通过扩展运算符(...)将其元素作为单独的参数传递。例如,
Math.max(1, 2, 3, 4)
会返回4。 -
Math.min(...values): 这个方法返回一组数中的最小值。与
Math.max
类似,可以传入多个值或数组的元素。例如,Math.min(1, 2, 3, 4)
会返回1。
5.日期(Date):
5.1创建日期对象
在JavaScript中,您可以通过以下方式创建日期对象:
// 创建一个表示当前日期和时间的Date对象
let now = new Date();
// 创建一个表示特定日期和时间的Date对象
let specificDate = new Date('2023-03-20 14:30:00'); // 格式为 'YYYY-MM-DD HH:mm:ss'
注意:在创建特定日期的Date
对象时,日期字符串的格式应该符合JavaScript所支持的日期格式,如ISO 8601格式('YYYY-MM-DDTHH:mm:ss.sssZ'),或者您可以使用其他构造函数参数来明确设置日期和时间的各个部分。
5.2Date对象的方法
- getTime(): 返回自1970年1月1日00:00:00 UTC至该日期的毫秒数(格林威治时间戳,也称为Unix时间戳,但单位是毫秒而不是秒)。
let timestamp = now.getTime(); // 返回时间戳(毫秒)
- getFullYear(): 返回日期的年份(四位数)。
let year = now.getFullYear(); // 返回年份,如 2023
- getMonth(): 返回日期的月份(0-11),其中0表示一月,11表示十二月。因此,通常使用时需要加1。
let month = now.getMonth() + 1; // 返回月份(1-12)
- getDate(): 返回日期的日(1-31)。
let date = now.getDate(); // 返回日份
- getHours(): 返回日期的小时(0-23)。
let hours = now.getHours(); // 返回小时数
- getMinutes(): 返回日期的分钟(0-59)。
let minutes = now.getMinutes(); // 返回分钟数
- getSeconds(): 返回日期的秒数(0-59)。
let seconds = now.getSeconds(); // 返回秒数
结语:
今天我们就先讲到这里了,今天是关于JavaScript的第四天,JavaScript 以一种独特的方式支持面向对象编程,它结合了原型继承和类继承的特点,使得开发者能够灵活地组织和复用代码。以上的内容是我个人的一些学习的笔记,当然这只是我个人的一点看法和理解或许还是会有一点小问题,欢迎大家的指正,也欢迎大家在评论区和谐讨论。