TypeScript面向对象编程、Math与String对象详解

TypeScript 是构建大型应用的重要工具,丰富的面向对象特性和内置对象支持让开发更高效。

TypeScript 面向对象编程

在 TypeScript 中,类是面向对象编程的核心,它包含属性、构造函数和方法。

class Person {name: string;age: number;constructor(name: string, age: number) {this.name = name;this.age = age;}greet(): string {return `Hello, my name is ${this.name}, and I am ${this.age} years old.`;}
}const john = new Person('John', 30);
console.log(john.greet());
特性描述
使用 class 定义
构造函数使用 constructor 定义
方法定义类的行为
继承

通过继承,子类可以复用父类的属性和方法,并实现代码复用。

class Employee extends Person {position: string;constructor(name: string, age: number, position: string) {super(name, age); // 调用父类的构造函数this.position = position;}work(): string {return `${this.name} is working as a ${this.position}.`;}
}const jane = new Employee('Jane', 28, 'Developer');
console.log(jane.greet());
console.log(jane.work());
特性描述
继承使用 extends 关键字
super 调用调用父类的构造函数或方法
抽象类

抽象类是不能被实例化的类,通常作为其他类的基类。

abstract class Animal {abstract makeSound(): void; // 抽象方法move(): void {console.log('Moving...');}
}class Dog extends Animal {makeSound(): void {console.log('Woof!');}
}const dog = new Dog();
dog.makeSound();
dog.move();
特性描述
抽象类使用 abstract 定义
抽象方法必须在子类中实现
接口

接口用于定义对象的结构或类的约束。

interface Shape {area(): number;
}class Circle implements Shape {radius: number;constructor(radius: number) {this.radius = radius;}area(): number {return Math.PI * this.radius ** 2;}
}const circle = new Circle(10);
console.log(circle.area());
特性描述
接口使用 interface 定义
实现接口使用 implements 关键字

Math 对象

Math 对象提供了一系列数学运算和常量。

常用方法
方法功能说明
Math.abs(x)返回 x 的绝对值
Math.max(a, b, ...)返回参数中的最大值
Math.min(a, b, ...)返回参数中的最小值
Math.pow(x, y)返回 x 的 y 次幂
Math.sqrt(x)返回 x 的平方根
Math.random()返回 [0, 1) 的随机数
Math.round(x)返回四舍五入后的整数
Math.floor(x)返回小于等于 x 的最大整数
Math.ceil(x)返回大于等于 x 的最小整数
常用属性
属性描述
Math.PI圆周率 π
Math.E自然对数的底数 e
Math.LN22 的自然对数
Math.SQRT22 的平方根

示例代码

console.log(Math.abs(-10));      // 10
console.log(Math.max(3, 5, 1)); // 5
console.log(Math.random());     // 随机数
console.log(Math.PI);           // 3.141592653589793

String 对象

String 对象提供了操作字符串的方法和属性。

常用方法
方法功能说明
str.toUpperCase()转为大写
str.toLowerCase()转为小写
str.substring(a, b)截取 [a, b) 范围的子字符串
str.indexOf(substr)查找子字符串首次出现的位置
str.includes(substr)判断字符串是否包含某子字符串
str.split(separator)按分隔符拆分字符串
str.replace(a, b)替换字符串中的某部分
常用属性
属性描述
str.length字符串的长度

示例代码

const str = 'TypeScript is awesome!';
console.log(str.length);            // 21
console.log(str.toUpperCase());     // TYPESCRIPT IS AWESOME!
console.log(str.includes('awesome')); // true
console.log(str.split(' '));        // ['TypeScript', 'is', 'awesome!']

凡是过去,皆为序章;凡是未来,皆有可期。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/66519.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux操作系统——多线程互斥

目录 一、前言 二、线程互斥 三、多线程访问临界资源所导致的问题 四、Mutex互斥量 1、锁的接口及其使用 定义一个锁(造锁) 初始化锁(改锁) 摧毁锁 上锁 解锁 锁的使用 五、锁的宏初始化 六、锁的原理 七、C封装互斥锁 八、可重入与线程…

conda指定路径安装虚拟python环境

DataBall 助力快速掌握数据集的信息和使用方式,会员享有 百种数据集,持续增加中。 需要更多数据资源和技术解决方案,知识星球: “DataBall - X 数据球(free)” -------------------------------------------------------------…

鸿蒙 ArkUI实现地图找房效果

常用的地图找房功能,是在地图上添加区域、商圈、房源等一些自定义 marker,然后配上自己应用的一些筛选逻辑构成,在这里使用鸿蒙 ArkUI 简单实现下怎么添加区域/商圈、房源等 Marker. 1、开启地图服务 在华为开发者官网,注册应用&…

Kubernetes开发环境minikube | 开发部署apache tomcat web单节点应用

minikube是一个主要用于开发与测试Kubernetes应用的运行环境 本文主要描述在minikube运行环境中部署J2EE tomcat web应用 minikube start --force minikube status 如上所示,在Linux中启动minikube运行环境 service docker start docker version service docker …

Kafka为什么要放弃Zookeeper

1.Kafka简介 Apache Kafka最早是由Linkedin公司开发,后来捐献给了Apack基金会。 Kafka被官方定义为分布式流式处理平台,因为具备高吞吐、可持久化、可水平扩展等特性而被广泛使用。目前Kafka具体如下功能: 消息队列,Kafka具有系统解耦、流…

CSS语言的文件操作

CSS语言文件操作浅析 CSS(层叠样式表)是一种用于描述HTML文档表现的样式表语言。它负责设置网页的视觉效果,包括文字、颜色、布局等。然而,CSS不仅仅是用于修饰页面,它在现代开发中的作用正变得愈发重要。在本文中&am…

KUKA机器人如何修改程序并下载到机器人控制器中?

KUKA机器人如何修改程序并下载到机器人控制器中? 如下图所示,首先将使用的网卡的IP地址设置为自动获得, 打开workvisual软件,点击搜索,正常情况下可以搜索到项目文件,选中后双击进入, 如下图所示,此时,workvisual会自动从机器人控制器中下载项目文件到电脑上,耐心等待…

网站运营数据pv、uv、ip

想要彻底弄清楚pv uv ip的区别,首先要知道三者的定义: IP(独立IP)的定义: 即Internet Protocol,指独立IP数。24小时内相同公网IP地址只被计算一次。 PV(访问量)的定义: 即Page View,即页面浏览量或点击量,用户每次刷…

51单片机——8*8LED点阵

LED 点阵的行则为发光二极管的阳极,LED 点阵的列则为发光二极管的阴极 根据 LED 发光二极管导通原理,当阳极为高电平,阴极为低电平则点亮,否则熄灭。 因此通过单片机P0口可控制点阵列,74HC595可控制点阵行 11 脚 SR…

《Rust权威指南》学习笔记(三)

泛型和trait 1.泛型可以提高代码的复用能力,泛型是具体类型或其他属性的抽象代替,可以看成是一种模版,一个占位符,编译器在编译时会将这些占位符替换成具体的类型,这个过程叫做“单态化”,所以使用泛型的…

CentOS: RPM安装、YUM安装、编译安装(详细解释+实例分析!!!)

目录 1.什么是RPM 1.1 RPM软件包命名格式 1.2RPM功能 1.3查询已安装的软件:rpm -q 查询已安装软件的信息 1.4 挂载:使用硬件(光驱 硬盘 u盘等)的方法(重点!!!) 1…

【玩转全栈】----Django连接MySQL

阅前先赞,养好习惯! 目录 1、ORM框架介绍 选择建议 2、安装mysqlclient 3、创建数据库 4、修改settings,连接数据库 5、对数据库进行操作 创建表 删除表 添加数据 删除数据 修改(更新)数据: 获取数据 1、OR…

Spring Boot 项目离线环境手动构建指南

引言 在实际开发环境中,许多企业的生产环境采用离线环境(如内网环境),以保障数据和系统安全。在这种环境下,开发者无法直接通过网络访问外部依赖仓库,例如 Maven 中央仓库。这给 Spring Boot 项目的构建和…

Supermaven 加入 Cursor:AI 编码新篇章

引言 2024 年 11 月 11 日,我们迎来了一个激动人心的时刻——Supermaven 正式加入 Cursor! 这一合作标志着 AI 编程工具进入了一个新的发展阶段,为开发者提供更智能、更高效的编码体验。本文将带您了解此次合并的背景、意义以及未来的发展方…

CM3/4启动流程

CM3/4启动流程 1. 启动模式2. 启动流程 1. 启动模式 复位方式有三种:上电复位,硬件复位和软件复位。 当产生复位,并且离开复位状态后,CM3/4 内核做的第一件事就是读取下列两个 32 位整数的值: 从地址 0x0000 0000 处取…

限时特惠,香港服务器,低至53元/年

家人们谁懂啊!香港服务器这价格简直逆天了,居然比内地的还便宜!就拿阿里云来说,人家最低配置的服务器,价格都很难做到这么亲民。 最低配的就不说了,2 核 4G 的配置,应对日常业务稳稳当当&#x…

【STM32】点击下载按钮时,提示No ST-LINK detected

00. 目录 文章目录 00. 目录01. 问题描述02. 问题分析03. 问题解决04. 问题验证05. 附录 01. 问题描述 点击下载按钮时,提示No ST-LINK detected。 02. 问题分析 电脑没有检测到有ST-LINK设备,一般是ST-LINK驱动的问题。 03. 问题解决 \1. 先确保ST…

SAP BC 同服务器不同client之间的传输SCC1

源配置client不需要释放 登录目标client SCC1

【前端开发常用网站汇总-01】

1、仿mac界面代码截图 https://codeimg.io/?utm_sourceappinn.com 2、可视化大屏汇总(在线Demo) https://www.xiongze.net/viewdata/index.html 3、在线Photoshop(实现简单P图) https://ps.gaoding.com/#/ 4、在线生成ico图标(png转icon文件) https://www.bitbug.net/in…

PyTorch 官方文档 中文版本

文档来源 https://pytorch.cadn.net.cn 大多数机器学习工作流都涉及处理数据、创建模型、优化模型 参数,并保存经过训练的模型。本教程向您介绍完整的 ML 工作流 在 PyTorch 中实现,并提供了用于了解有关每个概念的更多信息的链接。 我们将使用 Fashion…