JavaScript第八讲:日期,Math,自定义对象

2024-06-04 02:52

本文主要是介绍JavaScript第八讲:日期,Math,自定义对象,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

前言

日期

1. 创建日期对象

2. 年/月/日

3. 时:分:秒:毫秒

4. 一周的第几天

5. 经历的毫秒数

6. 修改日期和时间

Math

1. 自然对数和圆周率

2. 绝对值

3. 最小最大

4. 求幂

5. 四舍五入

6. 随机数

自定义对象

1. 通过 new Object 创建对象

2. 通过 function 设计一个对象(构造函数)

3. 为已经存在的对象,增加新的方法

添加到对象的原型(推荐)

直接添加到对象的实例(不推荐,但可行)

结语


前言

在JavaScript编程的旅途中,我们经常会遇到需要处理日期、数学运算以及创建和使用自定义对象的情况。这些基础而重要的概念构成了JavaScript编程的核心部分,无论是在前端开发还是后端开发中,它们都扮演着不可或缺的角色。

通过本文的学习,你将能够掌握这些基本概念,并能够在自己的项目中灵活运用它们。无论你是JavaScript的初学者还是有一定经验的开发者,相信本文都能为你提供有价值的参考和启示。

日期

1. 创建日期对象

在JavaScript中,你可以使用Date对象来存储和操作日期和时间。Date对象可以自动获取当前的日期和时间,或者你可以给它指定一个特定的日期和时间。

// 创建一个表示当前日期和时间的Date对象  
let now = new Date();  
console.log(now); // 输出类似 "Wed Jun 30 2023 15:49:02 GMT+0800 (中国标准时间)"  // 创建一个表示特定日期和时间的Date对象  
let specificDate = new Date(2023, 5, 30, 10, 30, 0, 0); // 注意月份是从0开始的,所以6月是5  
console.log(specificDate); // 输出类似 "Sat Jun 30 2023 10:30:00 GMT+0800 (中国标准时间)"

2. 年/月/日

你可以使用getFullYear(), getMonth(), 和 getDate() 方法来获取日期的年、月和日。

let date = new Date(2023, 5, 30);  
console.log(date.getFullYear()); // 输出 2023  
console.log(date.getMonth() + 1); // 输出 6,因为月份是从0开始的  
console.log(date.getDate()); // 输出 30

3. 时:分:秒:毫秒

你可以使用getHours(), getMinutes(), getSeconds(), 和 getMilliseconds() 方法来获取时间的小时、分钟、秒和毫秒。

let time = new Date();  
console.log(time.getHours()); // 输出当前小时  
console.log(time.getMinutes()); // 输出当前分钟  
console.log(time.getSeconds()); // 输出当前秒  
console.log(time.getMilliseconds()); // 输出当前毫秒

4. 一周的第几天

你可以使用getDay() 方法来获取日期是一周中的第几天(0代表星期日,1代表星期一,以此类推)。

let dayOfWeek = new Date(2023, 5, 30).getDay();  
console.log(dayOfWeek); // 输出 6,因为2023年6月30日是星期六

5. 经历的毫秒数

你可以使用getTime() 方法来获取从1970年1月1日00:00:00 UTC(世界标准时间)到当前日期和时间的毫秒数。

let timeInMilliseconds = new Date().getTime();  
console.log(timeInMilliseconds); // 输出从1970年1月1日到现在的毫秒数

6. 修改日期和时间

你可以使用setFullYear(), setMonth(), setDate(), setHours(), setMinutes(), setSeconds(), 和 setMilliseconds() 方法来修改日期和时间。

let date = new Date(2023, 5, 30);  
date.setFullYear(2024); // 修改年份为2024  
date.setMonth(0); // 修改月份为1月(注意月份是从0开始的)  
date.setDate(1); // 修改日期为1日  
console.log(date); // 输出类似 "Wed Jan 01 2024 00:00:00 GMT+0800 (中国标准时间)"

Math

1. 自然对数和圆周率

Math对象提供了对自然对数(Math.LN2Math.LNEMath.LOG2EMath.LOG10E)和圆周率(Math.PI)的访问。

// 圆周率  
console.log(Math.PI); // 输出 3.141592653589793(近似值)  // 自然对数相关的常量  
console.log(Math.LN2); // 输出 0.6931471805599453(ln(2) 的值)  
console.log(Math.LNE); // 输出 1(e 的自然对数的值,即 ln(e))  
console.log(Math.LOG2E); // 输出 1.4426950408889634(e 的以2为底的对数的值)  
console.log(Math.LOG10E); // 输出 0.4342944819032518(e 的以10为底的对数的值)

2. 绝对值

使用Math.abs()方法可以计算一个数的绝对值。

console.log(Math.abs(-5)); // 输出 5  
console.log(Math.abs(10)); // 输出 10

3. 最小最大

Math.min()Math.max()方法用于找出一组数值中的最小值和最大值。

console.log(Math.min(1, 2, 3, 4, 5)); // 输出 1  
console.log(Math.max(1, 2, 3, 4, 5)); // 输出 5

4. 求幂

Math.pow()方法用于计算一个数的幂。

console.log(Math.pow(2, 3)); // 输出 8(2的3次方)  
console.log(Math.pow(3, 2)); // 输出 9(3的2次方)

5. 四舍五入

Math对象提供了几种四舍五入的方法:

  • Math.round():标准四舍五入。
  • Math.floor():向下取整。
  • Math.ceil():向上取整。
console.log(Math.round(4.5)); // 输出 5  
console.log(Math.floor(4.5)); // 输出 4  
console.log(Math.ceil(4.5));  // 输出 5

6. 随机数

Math.random()方法用于生成一个[0, 1)之间的伪随机数。

// 生成一个 0 到 1 之间的随机数  
let randomNum = Math.random();  
console.log(randomNum);  // 生成一个指定范围内的随机数(例如,1 到 10 之间)  
let min = 1;  
let max = 10;  
let randomNumInRange = Math.random() * (max - min) + min;  
console.log(randomNumInRange);

自定义对象

1. 通过 new Object 创建对象

在JavaScript中,你可以使用new Object()来创建一个新的空对象,然后为其添加属性和方法。

// 创建一个新的空对象  
let person = new Object();  // 为对象添加属性  
person.name = "Alice";  
person.age = 30;  // 为对象添加方法  
person.greet = function() {  console.log(`Hello, my name is ${this.name}`);  
};  // 调用方法  
person.greet(); // 输出: Hello, my name is Alice

2. 通过 function 设计一个对象(构造函数)

更常见的做法是使用函数作为构造函数来创建对象。这种方式可以通过new关键字来调用构造函数,并创建具有相同属性和方法的新对象。

// 定义一个构造函数  
function Person(name, age) {  this.name = name;  this.age = age;  // 为对象添加方法  this.greet = function() {  console.log(`Hello, my name is ${this.name}`);  };  
}  // 使用new关键字和构造函数来创建对象  
let person1 = new Person("Bob", 25);  
let person2 = new Person("Charlie", 35);  // 调用方法  
person1.greet(); // 输出: Hello, my name is Bob  
person2.greet(); // 输出: Hello, my name is Charlie

3. 为已经存在的对象,增加新的方法

如果你已经有一个对象,并且想要为其添加新的方法,你可以直接为对象的原型添加方法,或者直接为对象的实例添加方法。但请注意,直接在对象实例上添加方法通常不推荐,因为这会导致每个实例都有自己的方法副本,而不是共享同一个方法。

添加到对象的原型(推荐)
// 假设我们已经有了一个Person构造函数  
function Person(name, age) {  this.name = name;  this.age = age;  
}  // 为Person的原型添加方法  
Person.prototype.greet = function() {  console.log(`Hello, my name is ${this.name}`);  
};  // 创建对象  
let person3 = new Person("David", 40);  // 调用方法  
person3.greet(); // 输出: Hello, my name is David
直接添加到对象的实例(不推荐,但可行)
// 假设我们已经有了一个Person的实例  
let person4 = {  name: "Eve",  age: 20  
};  // 为这个特定的实例添加方法  
person4.greet = function() {  console.log(`Hello, my name is ${this.name}`);  
};  // 调用方法  
person4.greet(); // 输出: Hello, my name is Eve  // 注意:这种方法只会影响person4这个特定的实例,不会影响其他Person实例。

结语

下一节有本文的练习题。有需要的码客们可以去看一下

经过本文的学习,你已经对JavaScript中的日期处理、数学运算和自定义对象有了深入的了解。Date对象使你能够轻松地创建、操作和格式化日期;Math对象提供了一系列强大的数学方法和常量,帮助你进行复杂的数学运算;而自定义对象则是你实现模块化、封装和复用的关键。

这些基础知识不仅是你编写高效、健壮的JavaScript代码的基础,也是你成为一名优秀JavaScript开发者的必经之路。希望你在今后的学习和实践中,能够不断巩固和扩展这些知识,并探索JavaScript更多的高级特性和应用。

最后,感谢你的阅读和学习。相信在JavaScript编程的道路上,你会越走越远,取得更加辉煌的成就!

respect!

这篇关于JavaScript第八讲:日期,Math,自定义对象的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1028864

相关文章

Java实现检查多个时间段是否有重合

《Java实现检查多个时间段是否有重合》这篇文章主要为大家详细介绍了如何使用Java实现检查多个时间段是否有重合,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录流程概述步骤详解China编程步骤1:定义时间段类步骤2:添加时间段步骤3:检查时间段是否有重合步骤4:输出结果示例代码结语作

Java中String字符串使用避坑指南

《Java中String字符串使用避坑指南》Java中的String字符串是我们日常编程中用得最多的类之一,看似简单的String使用,却隐藏着不少“坑”,如果不注意,可能会导致性能问题、意外的错误容... 目录8个避坑点如下:1. 字符串的不可变性:每次修改都创建新对象2. 使用 == 比较字符串,陷阱满

Java判断多个时间段是否重合的方法小结

《Java判断多个时间段是否重合的方法小结》这篇文章主要为大家详细介绍了Java中判断多个时间段是否重合的方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录判断多个时间段是否有间隔判断时间段集合是否与某时间段重合判断多个时间段是否有间隔实体类内容public class D

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

Java覆盖第三方jar包中的某一个类的实现方法

《Java覆盖第三方jar包中的某一个类的实现方法》在我们日常的开发中,经常需要使用第三方的jar包,有时候我们会发现第三方的jar包中的某一个类有问题,或者我们需要定制化修改其中的逻辑,那么应该如何... 目录一、需求描述二、示例描述三、操作步骤四、验证结果五、实现原理一、需求描述需求描述如下:需要在

Java中ArrayList和LinkedList有什么区别举例详解

《Java中ArrayList和LinkedList有什么区别举例详解》:本文主要介绍Java中ArrayList和LinkedList区别的相关资料,包括数据结构特性、核心操作性能、内存与GC影... 目录一、底层数据结构二、核心操作性能对比三、内存与 GC 影响四、扩容机制五、线程安全与并发方案六、工程

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

如何使用Java实现请求deepseek

《如何使用Java实现请求deepseek》这篇文章主要为大家详细介绍了如何使用Java实现请求deepseek功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.deepseek的api创建2.Java实现请求deepseek2.1 pom文件2.2 json转化文件2.2

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2