返回
用好练习题,助你轻松搞定TS
前端
2023-11-19 07:23:46
TypeScript (TS) 是一种流行的开源编程语言,用于构建大型应用程序。它是一个超集,这意味着它包含JavaScript的所有特性,还增加了一些额外的功能,例如类型系统和模块系统。这使得TS比JavaScript更强大、更易于维护。
如果你想学习TS,那么练习题是一个非常好的资源。练习题可以帮助你巩固所学知识,并发现自己的薄弱之处。通过做练习题,你可以不断地提高自己的编程技能。
在本文中,我们将为你提供10道TS练习题。这些练习题涵盖了TS的基本语法、类型系统、模块系统等各个方面。请你认真地完成这些练习题,相信你一定会学有所成。
1. 创建一个TS文件,并在其中声明一个名为“name”的变量,并将其值设为“John”。
// 创建一个TS文件
// 文件名:main.ts
// 声明一个名为"name"的变量
let name: string = "John";
// 输出变量的值
console.log(name);
2. 创建一个TS文件,并在其中定义一个名为“add”的函数,该函数接收两个数字作为参数,并返回这两个数字的和。
// 创建一个TS文件
// 文件名:main.ts
// 定义一个名为"add"的函数
function add(a: number, b: number): number {
return a + b;
}
// 调用add函数,并输出结果
console.log(add(1, 2));
3. 创建一个TS文件,并在其中定义一个名为“Person”的类,该类有一个名为“name”的属性和一个名为“getName”的方法。
// 创建一个TS文件
// 文件名:main.ts
// 定义一个名为"Person"的类
class Person {
// 构造函数
constructor(public name: string) {}
// getName方法
getName(): string {
return this.name;
}
}
// 创建一个Person对象
const person = new Person("John");
// 调用getName方法,并输出结果
console.log(person.getName());
4. 创建一个TS文件,并在其中创建一个名为“MyArray”的数组,该数组包含10个随机数。
// 创建一个TS文件
// 文件名:main.ts
// 创建一个名为"MyArray"的数组
const MyArray: number[] = [];
// 使用循环向数组中添加10个随机数
for (let i = 0; i < 10; i++) {
MyArray.push(Math.floor(Math.random() * 100));
}
// 输出数组
console.log(MyArray);
5. 创建一个TS文件,并在其中创建一个名为“MySet”的集合,该集合包含10个随机数,且这些随机数不能重复。
// 创建一个TS文件
// 文件名:main.ts
// 创建一个名为"MySet"的集合
const MySet: Set<number> = new Set();
// 使用循环向集合中添加10个随机数
while (MySet.size < 10) {
MySet.add(Math.floor(Math.random() * 100));
}
// 输出集合
console.log(MySet);
6. 创建一个TS文件,并在其中创建一个名为“MyMap”的映射,该映射包含10对键值对,键为字符串,值为数字。
// 创建一个TS文件
// 文件名:main.ts
// 创建一个名为"MyMap"的映射
const MyMap: Map<string, number> = new Map();
// 使用循环向映射中添加10对键值对
for (let i = 0; i < 10; i++) {
MyMap.set("key" + i, Math.floor(Math.random() * 100));
}
// 输出映射
console.log(MyMap);
7. 创建一个TS文件,并在其中定义一个名为“sum”的函数,该函数接收一个数组作为参数,并返回数组中所有元素的和。
// 创建一个TS文件
// 文件名:main.ts
// 定义一个名为"sum"的函数
function sum(arr: number[]): number {
let total = 0;
for (let i = 0; i < arr.length; i++) {
total += arr[i];
}
return total;
}
// 创建一个数组
const arr = [1, 2, 3, 4, 5];
// 调用sum函数,并输出结果
console.log(sum(arr));
8. 创建一个TS文件,并在其中定义一个名为“filter”的函数,该函数接收一个数组和一个谓词函数作为参数,并返回一个新的数组,其中包含所有通过谓词函数测试的元素。
// 创建一个TS文件
// 文件名:main.ts
// 定义一个名为"filter"的函数
function filter(arr: number[], predicate: (n: number) => boolean): number[] {
const filteredArr = [];
for (let i = 0; i < arr.length; i++) {
if (predicate(arr[i])) {
filteredArr.push(arr[i]);
}
}
return filteredArr;
}
// 创建一个数组
const arr = [1, 2, 3, 4, 5];
// 定义一个谓词函数
const isEven = (n: number) => n % 2 === 0;
// 调用filter函数,并输出结果
console.log(filter(arr, isEven));
9. 创建一个TS文件,并在其中定义一个名为“map”的函数,该函数接收一个数组和一个映射函数作为参数,并返回一个新的数组,其中包含所有元素通过映射函数转换后的结果。
// 创建一个TS文件
// 文件名:main.ts
// 定义一个名为"map"的函数
function map(arr: number[], mapper: (n: number) => number): number[] {
const mappedArr = [];
for (let i = 0; i < arr.length; i++) {
mappedArr.push(mapper(arr[i]));
}
return mappedArr;
}
// 创建一个数组
const arr = [1, 2, 3, 4, 5];
// 定义一个映射函数
const double = (n: number) => n * 2;
// 调用map函数,并输出结果
console.log(map(arr, double));
10. 创建一个TS文件,并在其中定义一个名为“reduce”的函数,该函数接收一个数组、一个初始值和一个归约函数作为参数,并返回一个累积值。
// 创建一个TS文件
// 文件名:main.ts
// 定义一个名为"reduce"的函数
function reduce(
arr: number[],
initialValue: number,
reducer: (accumulator: number, currentValue: number) => number
): number {
let accumulator = initialValue;
for (let i = 0; i < arr.length; i++) {
accumulator = reducer(accumulator, arr[i]);
}
return accumulator;
}
// 创建一个数组
const arr = [1, 2, 3, 4, 5];
// 定义一个归约函数
const sum = (accumulator: number, currentValue: number) => accumulator + currentValue;
// 调用reduce函数,并输出结果
console.log(reduce(arr, 0, sum));
希望这些练习题对你有帮助!