TypeScript
typescript拥有六个数据类型,本文将要介绍这些数据类型并解释这些数据类型的参数和一些用法
number数据
number数据类型的定义的值
一,number数据类型可以定义整数和浮点数
二,number数据类型还可以定义一些特殊的值
三,number数据类型还可以表示二进制的值
number数据的一些内置属性
Number.MAX_VALUE:表示 JavaScript 中最大的正数,约为 1.8e+308。如果一个数大于这个值,JavaScript 会返回 Infinity。Number.MIN_VALUE:表示 JavaScript 中最小的正数(即最接近 0 的正数),约为 5e-324。比这个值更小的值将被转换为 0。Number.NaN:表示 "Not-a-Number" 值。Number.NEGATIVE_INFINITY:表示负无穷大。Number.POSITIVE_INFINITY:表示正无穷大。Number.EPSILON:表示 1 和比 1 大的最小浮点数之间的差。Number.MAX_SAFE_INTEGER:表示在 JavaScript 中可以精确表示的最大整数,即 2^53 - 1。Number.MIN_SAFE_INTEGER:表示在 JavaScript 中可以精确表示的最小整数,即 -(2^53 - 1)。
number数据的一些内置方法
Number.isFinite(number):检查传入的参数是否是有限的数字。如果参数是有限的数字,则返回 true,否则返回 false。Number.isInteger(number):检查传入的参数是否是整数。如果参数是整数,则返回 true,否则返回 false。Number.isNaN(number):检查传入的参数是否是 NaN。如果参数是 NaN,则返回 true,否则返回 false。Number.isSafeInteger(number):检查传入的参数是否是安全整数。如果参数是安全整数,则返回 true,否则返回 false。Number.parseFloat(string):将字符串解析为浮点数。Number.parseInt(string, radix):将字符串解析为指定基数(介于 2 和 36 之间)的整数。Number.prototype.toFixed(digits):将数字格式化为字符串,并保留到小数点后指定位数。Number.prototype.toExponential(fractionDigits):将数字转换为指数表示法。Number.prototype.toPrecision(precision):将数字格式化为字符串,并按指定的精度。Number.prototype.toString(radix):将数字转换为字符串。可以指定基数。
// Number.isFinite()
let finiteNumber = Number.isFinite(1000); // true
let infiniteNumber = Number.isFinite(Infinity); // false
console.log(finiteNumber, infiniteNumber);
// Number.isInteger()
let integerNumber = Number.isInteger(1000); // true
let floatNumber = Number.isInteger(1000.5); // false
console.log(integerNumber, floatNumber);
// Number.isNaN()
let notANumber = Number.isNaN(NaN); // true
let isANumber = Number.isNaN(1000); // false
console.log(notANumber, isANumber);
// Number.isSafeInteger()
let safeInteger = Number.isSafeInteger(Math.pow(2, 53) - 1); // true
let unsafeInteger = Number.isSafeInteger(Math.pow(2, 53)); // false
console.log(safeInteger, unsafeInteger);
// Number.parseFloat()
let floatFromString = Number.parseFloat("1000.5"); // 1000.5
console.log(floatFromString);
// Number.parseInt()
let integerFromString = Number.parseInt("1000", 10); // 1000
console.log(integerFromString);
// Number.prototype.toFixed()
let num1: number = 123.456;
console.log(num1.toFixed(2)); // "123.46"
// Number.prototype.toExponential()
let num2: number = 123456;
console.log(num2.toExponential(2)); // "1.23e+5"
// Number.prototype.toPrecision()
let num3: number = 123.456;
console.log(num3.toPrecision(2)); // "1.2e+2"
// Number.prototype.toString()
let num4: number = 123;
console.log(num4.toString(10)); // "123"
String类型
定义String类型
string的内置属性
length: 描述:返回字符串的长度。
string的内置方法
- charAt(index: number): string: 返回字符串中指定索引位置的字符。
let str: string = "Hello, TypeScript!";
console.log(str.charAt(0)); // 输出 'H'
2. charCodeAt(index: number): number: 返回字符串中指定索引位置的字符的 Unicode 编码。
let str: string = "Hello, TypeScript!";
console.log(str.charCodeAt(0)); // 输出 72
3. concat(...strings: string[]): string: 描述:连接两个或多个字符串,并返回一个新字符串。
let str1: string = "Hello, ";
let str2: string = "TypeScript!";
console.log(str1.concat(str2)); // 输出 'Hello, TypeScript!'
4. indexOf(searchValue: string, fromIndex?: number): number: 描述:返回字符串中第一次出现指定值的索引,如果没有找到则返回 -1。
let str: string = "Hello, TypeScript!";
console.log(str.indexOf("Type")); // 输出 7
5. slice(start?: number, end?: number): string: 描述:提取字符串的一个片段,并返回一个新字符串。
let str: string = "Hello, TypeScript!";
console.log(str.slice(0, 5)); // 输出 'Hello'
6. substring(start: number, end?: number): string: 描述:提取字符串的一个子串,并返回一个新字符串。
let str: string = "Hello, TypeScript!";
console.log(str.substring(0, 5)); // 输出 'Hello'
7. toUpperCase(): string: 描述:将字符串转换为大写。
let str: string = "Hello, TypeScript!";
console.log(str.toUpperCase()); // 输出 'HELLO, TYPESCRIPT!'
8. toLowerCase(): string: 描述:将字符串转换为小写。
let str: string = "Hello, TypeScript!";
console.log(str.toLowerCase()); // 输出 'hello, typescript!'
Array(数组)
定义Array(数组)
let arr: number[] = [1, 2, 3, 4, 5];
Array(数组)的一些属性
Array(数组)的一些方法
- push(...items: T[]): number:
- 描述:将一个或多个元素添加到数组的末尾,并返回数组新的长度。
let arr: number[] = [1, 2, 3];
arr.push(4, 5);
console.log(arr); // 输出 [1, 2, 3, 4, 5]
2. pop(): T | undefined:
- 描述:移除数组的最后一个元素并返回该元素。
let arr: number[] = [1, 2, 3, 4, 5];
let lastElement = arr.pop();
console.log(lastElement); // 输出 5
console.log(arr); // 输出 [1, 2, 3, 4]
3. shift(): T | undefined:
- 描述:移除数组的第一个元素并返回该元素。
let arr: number[] = [1, 2, 3, 4, 5];
let firstElement = arr.shift();
console.log(firstElement); // 输出 1
console.log(arr); // 输出 [2, 3, 4, 5]
4. unshift(...items: T[]): number:
- 描述:将一个或多个元素添加到数组的开头,并返回数组新的长度。
let arr: number[] = [3, 4, 5];
arr.unshift(1, 2);
console.log(arr); // 输出 [1, 2, 3, 4, 5]
5. indexOf(searchElement: T, fromIndex?: number): number:
- 描述:返回数组中第一次出现指定元素的索引,如果没有找到则返回 -1。
let arr: number[] = [1, 2, 3, 4, 5];
console.log(arr.indexOf(3)); // 输出 2
6. splice(start: number, deleteCount?: number, ...items: T[]): T[]:
- 描述:从数组中移除元素,并在指定位置添加新的元素。
let arr: number[] = [1, 2, 3, 4, 5];
arr.splice(2, 1, 6); // 从索引 2 开始移除一个元素,然后添加元素 6
console.log(arr); // 输出 [1, 2, 6, 4, 5]
7. slice(start?: number, end?: number): T[]:
- 描述:提取数组的一个片段,并返回一个新数组。
let arr: number[] = [1, 2, 3, 4, 5];
let slicedArr = arr.slice(1, 4);
console.log(slicedArr); // 输出 [2, 3, 4]
TypeScript Map对象
TypeScript Map对象就是加了一个索引功能的数组
TypeScript Map对象的内置属性
TypeScript Map对象的内置方法
- set(key: K, value: V): Map<K, V>:
- 描述:向 Map 中添加一个新的键值对。
- 示例:
let myMap = new Map<string, number>();
myMap.set("one", 1);
myMap.set("two", 2);
2. get(key: K): V | undefined:
- 描述:根据键获取对应的值,如果键不存在则返回
undefined。 - 示例:
let myMap = new Map<string, number>();
myMap.set("one", 1);
console.log(myMap.get("one")); // 输出 1
console.log(myMap.get("three")); // 输出 undefined
3. has(key: K): boolean:
- 描述:检查 Map 中是否包含指定的键。
- 示例:
let myMap = new Map<string, number>();
myMap.set("one", 1);
console.log(myMap.has("one")); // 输出 true
console.log(myMap.has("three")); // 输出 false
4. delete(key: K): boolean:
- 描述:从 Map 中移除指定键的键值对,如果键不存在则返回
false。 - 示例:
let myMap = new Map<string, number>();
myMap.set("one", 1);
console.log(myMap.delete("one")); // 输出 true
console.log(myMap.delete("three")); // 输出 false
5. clear(): void:
- 描述:移除 Map 中的所有键值对。
- 示例:
let myMap = new Map<string, number>();
myMap.set("one", 1);
myMap.set("two", 2);
myMap.clear();
6. forEach(callbackfn: (value: V, key: K, map: Map<K, V>) => void, thisArg?: any): void:
- 描述:对 Map 中的每个键值对执行一次提供的函数。
- 示例:
let myMap = new Map<string, number>();
myMap.set("one", 1);
myMap.set("two", 2);
myMap.forEach((value, key) => {
console.log(`Key: ${key}, Value: ${value}`);
});
// 输出:
// Key: one, Value: 1
// Key: two, Value: 2
7. keys(): IterableIterator:
- 描述:返回一个包含 Map 中所有键的迭代器。
- 示例:
let myMap = new Map<string, number>();
myMap.set("one", 1);
myMap.set("two", 2);
let keys = myMap.keys();
for (let key of keys) {
console.log(key);
}
// 输出:
// one
// two
8. values(): IterableIterator:
- 描述:返回一个包含 Map 中所有值的迭代器。
- 示例:
let myMap = new Map<string, number>();
myMap.set("one", 1);
myMap.set("two", 2);
let values = myMap.values();
for (let value of values) {
console.log(value);
}
// 输出:
// 1
// 2
9. entries(): IterableIterator<[K, V]>:
- 描述:返回一个包含 Map 中所有键值对的迭代器。
- 示例:
let myMap = new Map<string, number>();
myMap.set("one", 1);
myMap.set("two", 2);
let entries = myMap.entries();
for (let entry of entries) {
console.log(`Key: ${entry[0]}, Value: ${entry[1]}`);
}
// 输出:
// Key: one, Value: 1
// Key: two, Value: 2
- set(key: K, value: V): Map<K, V>:
- 描述:向 Map 中添加一个新的键值对。
- 示例:
let myMap = new Map<string, number>();
myMap.set("one", 1);
myMap.set("two", 2);
2. get(key: K): V | undefined:
- 描述:根据键获取对应的值,如果键不存在则返回
undefined。 - 示例:
let myMap = new Map<string, number>();
myMap.set("one", 1);
console.log(myMap.get("one")); // 输出 1
console.log(myMap.get("three")); // 输出 undefined
3. has(key: K): boolean:
- 描述:检查 Map 中是否包含指定的键。
- 示例:
let myMap = new Map<string, number>();
myMap.set("one", 1);
console.log(myMap.has("one")); // 输出 true
console.log(myMap.has("three")); // 输出 false
4. delete(key: K): boolean:
- 描述:从 Map 中移除指定键的键值对,如果键不存在则返回
false。 - 示例:
let myMap = new Map<string, number>();
myMap.set("one", 1);
console.log(myMap.delete("one")); // 输出 true
console.log(myMap.delete("three")); // 输出 false
5. clear(): void:
- 描述:移除 Map 中的所有键值对。
- 示例:
let myMap = new Map<string, number>();
myMap.set("one", 1);
myMap.set("two", 2);
myMap.clear();
6. forEach(callbackfn: (value: V, key: K, map: Map<K, V>) => void, thisArg?: any): void:
- 描述:对 Map 中的每个键值对执行一次提供的函数。
- 示例:
let myMap = new Map<string, number>();
myMap.set("one", 1);
myMap.set("two", 2);
myMap.forEach((value, key) => {
console.log(`Key: ${key}, Value: ${value}`);
});
// 输出:
// Key: one, Value: 1
// Key: two, Value: 2
7. keys(): IterableIterator:
- 描述:返回一个包含 Map 中所有键的迭代器。
- 示例:
let myMap = new Map<string, number>();
myMap.set("one", 1);
myMap.set("two", 2);
let keys = myMap.keys();
for (let key of keys) {
console.log(key);
}
// 输出:
// one
// two
8. values(): IterableIterator:
- 描述:返回一个包含 Map 中所有值的迭代器。
- 示例:
let myMap = new Map<string, number>();
myMap.set("one", 1);
myMap.set("two", 2);
let values = myMap.values();
for (let value of values) {
console.log(value);
}
// 输出:
// 1
// 2
9. entries(): IterableIterator<[K, V]>:
- 描述:返回一个包含 Map 中所有键值对的迭代器。
- 示例:
let myMap = new Map<string, number>();
myMap.set("one", 1);
myMap.set("two", 2);
let entries = myMap.entries();
for (let entry of entries) {
console.log(`Key: ${entry[0]}, Value: ${entry[1]}`);
}
// 输出:
// Key: one, Value: 1
// Key: two, Value: 2