文章目录
- 一、JavaScript 对象的基础认知
- 二、对象的创建方式
- 2.1 使用对象字面量 ==({})== 创建
- 2.2 使用 ==new Object ()== 创建
- 2.3 使用构造函数创建
- 三、对象的遍历
- 四、检查对象中是否存在某个属性
- 五、常用内置对象之 Math
- 5.1 Math.abs ():求绝对值
- 5.2 Math.max () 和 Math.min ():求最大值和最小值
- 5.3 Math.floor () 和 Math.ceil ():取整操作
- 5.4 Math.random ():生成随机数
- 5.5 Math.round ():四舍五入取整
- 5.6 Math.sqrt ():开平方根
- 5.7 Math.pow (x, y):求幂运算
- 六、常用内置对象之 Date
- 6.1 Date.now ():获取时间戳
- 6.2 new Date ():创建日期对象
- 6.3 Date 对象的常用方法
在 JavaScript 中,对象是一种非常重要的数据类型,它可以将多个相关的数据和功能组织在一起,是实现复杂功能的基础。本文将从对象的基本概念出发,详细介绍对象的创建方式、遍历方法、属性检查,以及常用的内置对象 Math 和 Date。
一、JavaScript 对象的基础认知
JavaScript 中的对象是键值对的集合,其中每一个键名又被称为属性,而键值可以是任意的数据类型,包括数字、字符串、布尔值、数组,甚至可以是函数。这种键值对的结构使得对象能够非常灵活地存储和管理数据,以及封装相关的操作方法。
二、对象的创建方式
2.1 使用对象字面量({})创建
这是创建对象最简洁、最常用的方式。通过在大括号中直接定义键值对来创建对象。
示例:
leta={};// 创建一个空对象letstudent={name:"daisy",height:170,weight:50,sayHello:function(){console.log("Hello");}};// 创建一个包含多个属性和方法的对象2.2 使用new Object ()创建
通过 Object 构造函数来创建对象,这种方式相对来说使用较少,但也是一种有效的创建方式。
示例:
letobj=newObject();// 创建一个空对象obj.name="张三";obj.age=20;// 为对象添加属性2.3 使用构造函数创建
构造函数是一种特殊的函数,用于创建特定类型的对象。通过构造函数可以批量创建具有相同结构的对象,提高代码的复用性。
示例:
functionPeople(name,age,sex,height){this.name=name;this.age=age;this.sex=sex;this.height=height;this.sayHello=function(){console.log("hello");}}letdaisy=newPeople("daisy",10,"female",160);letRare=newPeople("Rare",19,"male",170);在上述示例中,People就是一个构造函数,通过new关键字调用构造函数,创建了daisy和Rare两个对象,它们都具有name、age等属性和sayHello方法。
三、对象的遍历
使用for…in循环可以遍历对象中的所有键值对,依次获取对象的属性名和对应的属性值。
示例:
letstudent={name:"daisy",height:170,weight:50,sayHello:function(){console.log("Hello");}};for(letkinstudent){console.log(k);// 输出属性名console.log(student[k]);// 输出属性值}上述代码会依次输出student对象的每个属性名(name、height等)和对应的属性值(daisy、170等)。
四、检查对象中是否存在某个属性
使用in运算符可以检查某个属性是否存在于对象中,如果存在则返回true,否则返回false。
示例:
letstudent={name:"daisy",height:170,weight:50,sayHello:function(){console.log("Hello");}};console.log("name"instudent);// true,说明name属性存在console.log("grade"instudent);// false,说明grade属性不存在五、常用内置对象之 Math
Math 对象是 JavaScript 提供的一个内置对象,它包含了许多用于数学计算的属性和方法,这些方法都是静态的,可以直接通过 Math 对象调用,无需创建实例。
5.1 Math.abs ():求绝对值
该方法返回一个数的绝对值。
示例:
console.log(Math.abs(-100));// 100console.log(Math.abs(50));// 505.2 Math.max () 和 Math.min ():求最大值和最小值
Math.max()用于返回多个数中的最大值,Math.min()用于返回多个数中的最小值。
示例:
console.log(Math.max(10,20,30));// 30console.log(Math.min(5,3,8));// 35.3 Math.floor () 和 Math.ceil ():取整操作
- Math.floor()用于向下取整,即返回小于或等于该数的最大整数
- Math.ceil()用于向上取整,即返回大于或等于该数的最小整数。
示例:
console.log(Math.floor(3.7));// 3console.log(Math.floor(4.1));// 4console.log(Math.ceil(2.3));// 3console.log(Math.ceil(5.9));// 65.4 Math.random ():生成随机数
该方法返回一个大于等于 0 且小于 1 的伪随机数。如果需要生成两个数之间的随机数,可以通过一定的计算实现。
生成两个数之间随机数的函数示例:
functiongetRandomNumber(min,max){letre=Math.random()*(max-min)+min;console.log(re);}getRandomNumber(10,20);// 输出10到20之间的一个随机数5.5 Math.round ():四舍五入取整
该方法返回一个数四舍五入后的整数。
示例:
console.log(Math.round(3.4));// 3console.log(Math.round(6.7));// 75.6 Math.sqrt ():开平方根
该方法返回一个数的平方根。
示例:
console.log(Math.sqrt(16));// 4console.log(Math.sqrt(25));// 55.7 Math.pow (x, y):求幂运算
该方法返回以 x 为基数,y 为指数的幂运算结果,即 x 的 y 次方。
示例:
console.log(Math.pow(2,3));// 8,即2的3次方console.log(Math.pow(5,2));// 25,即5的2次方六、常用内置对象之 Date
Date 对象用于处理日期和时间,通过它可以获取、设置和操作日期时间信息。
6.1 Date.now ():获取时间戳
该方法返回从时间零点(1970 年 1 月 1 日 00:00:00 UTC)到当前时间的毫秒数,这个毫秒数也被称为时间戳。
示例:
console.log(Date.now());// 输出当前时间对应的时间戳,如17482669081016.2 new Date ():创建日期对象
使用new Date()可以创建一个表示当前日期和时间的 Date 对象;也可以传入特定的参数,创建表示指定日期和时间的对象。
示例:
console.log(newDate());// 输出当前日期和时间,如 Mon May 26 2025 21:40:31 GMT+0800 (GMT+08:00)letspecificDate=newDate(2023,0,1);// 创建表示2023年1月1日的对象(月份从0开始计数)console.log(specificDate);//输出 Sun Jan 01 2023 00:00:00 GMT+0800 (GMT+08:00)6.3 Date 对象的常用方法
- getDate():返回日期对象对应的一个月中的某一天(1-31)。
示例:
console.log(newDate(Date.now()).getDate());// 输出当前日期是当月的第几天,如26- getDay():返回日期对象对应的星期几(0-6,其中 0 表示星期日)。
示例:
console.log(newDate(Date.now()).getDay());// 输出当前是星期几,如1表示星期一- getMonth():返回日期对象对应的月份(0-11,0 表示 1 月,11 表示 12 月)。
示例:
console.log(newDate(Date.now()).getMonth());// 输出当前月份对应的数值,如4表示5月- getFullYear():返回日期对象对应的四位数年份。
示例:
console.log(newDate(Date.now()).getFullYear());// 输出当前的年份,如2025- getHours():返回日期对象对应的小时数(0-23)。
示例:
console.log(newDate(Date.now()).getHours());// 输出当前的小时数,如21表示晚上9点- getMinutes():返回日期对象对应的分钟数(0-59)。
示例:
console.log(newDate(Date.now()).getMinutes());// 输出当前的分钟数,如40- getSeconds():返回日期对象对应的秒数(0-59)。
示例:
console.log(newDate(Date.now()).getSeconds());// 输出当前的秒数,如31- getTime():返回日期对象对应的时间戳,即从 1970 年 1 月 1 日 00:00:00 UTC 到该日期的毫秒数,与 Date.now () 作用类似,但getTime () 是实例方法,Date.now () 是静态方法。
示例:
console.log(newDate(Date.now()).getTime());// 输出当前时间对应的时间戳,如1748266908101- toLocaleString():将日期对象转换为本地时间格式的字符串。
示例:
console.log(newDate().toLocaleString());// 输出类似"2025/5/26 21:40:31"的本地格式字符串