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

相关文章

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

Java 字符数组转字符串的常用方法

《Java字符数组转字符串的常用方法》文章总结了在Java中将字符数组转换为字符串的几种常用方法,包括使用String构造函数、String.valueOf()方法、StringBuilder以及A... 目录1. 使用String构造函数1.1 基本转换方法1.2 注意事项2. 使用String.valu

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

Spring MVC如何设置响应

《SpringMVC如何设置响应》本文介绍了如何在Spring框架中设置响应,并通过不同的注解返回静态页面、HTML片段和JSON数据,此外,还讲解了如何设置响应的状态码和Header... 目录1. 返回静态页面1.1 Spring 默认扫描路径1.2 @RestController2. 返回 html2

Spring常见错误之Web嵌套对象校验失效解决办法

《Spring常见错误之Web嵌套对象校验失效解决办法》:本文主要介绍Spring常见错误之Web嵌套对象校验失效解决的相关资料,通过在Phone对象上添加@Valid注解,问题得以解决,需要的朋... 目录问题复现案例解析问题修正总结  问题复现当开发一个学籍管理系统时,我们会提供了一个 API 接口去

Java操作ElasticSearch的实例详解

《Java操作ElasticSearch的实例详解》Elasticsearch是一个分布式的搜索和分析引擎,广泛用于全文搜索、日志分析等场景,本文将介绍如何在Java应用中使用Elastics... 目录简介环境准备1. 安装 Elasticsearch2. 添加依赖连接 Elasticsearch1. 创

Spring核心思想之浅谈IoC容器与依赖倒置(DI)

《Spring核心思想之浅谈IoC容器与依赖倒置(DI)》文章介绍了Spring的IoC和DI机制,以及MyBatis的动态代理,通过注解和反射,Spring能够自动管理对象的创建和依赖注入,而MyB... 目录一、控制反转 IoC二、依赖倒置 DI1. 详细概念2. Spring 中 DI 的实现原理三、

SpringBoot 整合 Grizzly的过程

《SpringBoot整合Grizzly的过程》Grizzly是一个高性能的、异步的、非阻塞的HTTP服务器框架,它可以与SpringBoot一起提供比传统的Tomcat或Jet... 目录为什么选择 Grizzly?Spring Boot + Grizzly 整合的优势添加依赖自定义 Grizzly 作为