TypeScript Number
TypeScript, как и JavaScript, поддерживает объект Number.
В TypeScript объект Number используется для обёртывания числовых типов.Объект Number — это объект-обёртка для примитивных числовых значений.
Как и объект String, объект Number является ссылочным типом и отличается от примитивного типа number.
Хотя объект Number предоставляет некоторые дополнительные свойства и методы, в TypeScript рекомендуется использовать примитивный тип number напрямую, поскольку объект Number создаёт накладные расходы на производительность и путаницу типов.
Синтаксис
var num = new Number(value);
Обратите внимание, что это создаёт объект ссылочного типа, а не примитивный тип number.
Примечание:Если значение параметра не может быть преобразовано в число, будет возвращено NaN (Not-A-Number).
Разница между объектом Number и примитивным типом number
- Примитивный тип
number: примитивный тип данных, используемый для хранения числовых значений. NumberОбъект: ссылочный тип, объект-обёртка, используемый для обёртывания примитивных числовых значений.
Пример
let numObject: Number = new Number(42);
console.log(typeof numLiteral); // Вывод: "number"
console.log(typeof numObject); // Вывод: "object"
Свойства объекта Number
В следующей таблице перечислены свойства, поддерживаемые объектом Number:
| Нет. | Свойство & Описание |
|---|---|
| 1. | MAX_VALUE Наибольшее представимое число. Значение свойства MAX_VALUE близко к 1.79E+308. Значения, превышающие MAX_VALUE, представляют "Infinity". |
| 2. | MIN_VALUE Наименьшее представимое число, т. е. положительное число, ближайшее к 0 (оно фактически не становится равным 0). Наибольшее отрицательное число — это -MIN_VALUE, а MIN_VALUE приблизительно равно 5e-324. Значения, меньшие чем MIN_VALUE («значения с потерей значимости»), будут преобразованы в 0. |
| 3. | NaN Нечисловое значение (Not-A-Number). |
| 4. | NEGATIVE_INFINITY Отрицательная бесконечность, возвращается при переполнении. Это значение меньше MIN_VALUE. |
| 5. | POSITIVE_INFINITY Положительная бесконечность, возвращается при переполнении. Это значение больше MAX_VALUE. |
| 6. | prototype Статическое свойство объекта Number. Оно позволяет добавлять свойства и методы к объектам. |
| 7. | constructor Возвращает ссылку на функцию Number, создавшую этот объект. |
TypeScript
Компиляция приведённого выше кода создаёт следующий код JavaScript:
JavaScript
Вывод:
TypeScript Number 属性: 最大值为: 1.7976931348623157e+308 最小值为: 5e-324 负无穷大: -Infinity 正无穷大:Infinity
Пример NaN
TypeScript
Компиляция приведённого выше кода создаёт следующий код JavaScript:
JavaScript
Вывод:
月份是:NaN
prototype пример
TypeScript
Компиляция приведённого выше кода создаёт следующий код JavaScript:
JavaScript
Вывод:
员工号: 123 员工姓名: admin 员工邮箱: [email protected]
Методы объекта Number
Объект Number поддерживает следующие методы:
| Нет. | Метод и описание | Пример |
|---|---|---|
| 1. | toExponential()
Преобразует значение объекта в экспоненциальную запись. |
//toExponential() var num1 = 1225.30 var val = num1.toExponential(); console.log(val) // 输出: 1.2253e+3 |
| 2. | toFixed()
Преобразует число в строку, указывая количество знаков после запятой. |
var num3 = 177.234
console.log("num3.toFixed() 为 "+num3.toFixed()) // 输出:177
console.log("num3.toFixed(2) 为 "+num3.toFixed(2)) // 输出:177.23
console.log("num3.toFixed(6) 为 "+num3.toFixed(6)) // 输出:177.234000
|
| 3. | toLocaleString()
Преобразует число в строку, используя порядок локального формата чисел. |
var num = new Number(177.1234); console.log( num.toLocaleString()); // 输出:177.1234 |
| 4. | toPrecision()
Форматирует число до указанной длины. |
var num = new Number(7.123456); console.log(num.toPrecision()); // 输出:7.123456 console.log(num.toPrecision(1)); // 输出:7 console.log(num.toPrecision(2)); // 输出:7.1 |
| 5. | toString()
Преобразует число в строку с использованием указанного основания системы счисления. Основание — целое число от 2 до 36. Если этот параметр опущен, используется основание 10. |
var num = new Number(10); console.log(num.toString()); // 输出10进制:10 console.log(num.toString(2)); // 输出2进制:1010 console.log(num.toString(8)); // 输出8进制:12 |
| 6. | valueOf()
Возвращает примитивное числовое значение объекта Number. |
var num = new Number(10); console.log(num.valueOf()); // 输出:10 |
Рекомендации по использованию объекта Number
В TypeScript обычно рекомендуется использовать примитивный тип number, а не объект Number. Причины следующие:
- Производительность: Примитивные типы более легковесны и обладают лучшей производительностью.
- Согласованность типов: Система типов TypeScript отдаёт предпочтение примитивным типам, а использование
Numberобъектов может привести к неожиданным несоответствиям типов. - Лучшие практики: Примитивный тип
numberбольше соответствует лучшим практикам TypeScript, избегая ненужной сложности, вызванной обёртыванием в объект.
Если вам действительно нужно использовать определённые методы объекта Number, вы можете преобразовать объект Number в примитивный тип number с помощью метода valueOf().
В итоге TypeScript рекомендует использовать примитивный тип number, а не объект Number, чтобы код оставался кратким, эффективным и согласованным.
Пример
let numObject: Number = new Number(123.456);
console.log(numLiteral.toFixed(2)); // Вывод: "123.46"
console.log(numObject.valueOf()); // Вывод: 123.456