基本类型
基本类型
vino提供了6种基本类型
| 类型名称 | 类型 | 说明 |
|---|---|---|
string | 基本 | 字符串 |
int | 基本 | 整型(64位) |
float | 基本 | 浮点型(64位) |
bigint | 基本 | 大整数 |
boolean | 基本 | 布尔类型 |
null | 基本 | 空类型 |
string
字符串支持双引号、单引号、反引号。
//声明字符串变量
let a = "123abc";
//声明整数常量
const b = '123abc';
//反引号
let c = `123abc`;
//模板字符串
let d = `abc${c}`; //结果是:abc123abc
int
int类型使用 64 位来存储数据。int 是有符号整数类型,这意味着它可以存储正数、负数和零。
精度相同的其他语言:
- Java中的
long - Golang中的
int64
- 最小值: -9,223,372,036,854,775,808
- 最大值: 9,223,372,036,854,775,807
变量声明
vino通过字面量来创建int类型的变量,提供了以下4种方式:
- 整数表示
整数通过0-9之间的数字字面量来创建整数
//整型
let b = 12;
- 二进制表示
二进制数字以 0b 或 0B 开头。
//二进制
let n = 0b101010;
//打印42
console.log(n)
- 八进制表示
八进制数字以 0o 或 0O 开头。
//八进制
let n = 0o52;
//打印42
console.log(n)
- 十六进制表示
十六进制数字以 0x 或 0X 开头。
//十六进制
let n = 0xFF;
//打印255
console.log(n)
属性与方法
| 名称 | 类型 | 参数 | 返回值 | 说明 |
|---|---|---|---|---|
toString | 方法 | radix?:int | string | 将数字转换为指定基数(进制)的字符串表示 |
toString
toString()方法可以将一个数字转换成其字符串表示形式。这个方法是非常灵活的,因为它允许你指定基数(进制),从而可以将数字转换为不同进制的字符串表示。
语法
num.toString(radix?:int)
- radix(可选):用于指定数字的基数。radix的值可以是2到36之间的整数,允许你将数字转换为二进制、八进制、十进制、十六进制或任何其他小于或等于36的基数的字符串表示。。
返回值
返回一个字符串
示例
let num = 10;
console.log(num.toString(2)); // 转换为二进制,输出: "1010"
console.log(num.toString(8)); // 转换为八进制,输出: "12"
console.log(num.toString(10)); // 转换为十进制,输出: "10"
console.log(num.toString(16)); // 转换为十六进制,输出: "a"
注意事项
- 默认行为:如果不提供radix参数,toString()方法默认使用十进制。
- 范围:radix参数的有效范围是2到36。这个范围之外的值会导致RangeError。
- 零的特殊情况:零在所有进制中都表示为“0”。
int() 全局函数
int() 是一个全局类型转换函数,可将任意类型的值转换为 int 类型。
语法
int(value: any): int | float | NaN
转换规则
| 源类型 | 转换结果 |
|---|---|
null | 0 |
int | 原值 |
float | 截断小数部分,转为整数。Infinity和NaN保持为float |
string | 解析为整数,包含小数时截断。空字符串返回0,无法解析返回NaN |
boolean | true -> 1,false -> 0 |
array | 空数组返回0,单元素数组递归转换,多元素数组返回NaN |
bigint | 转为 int64,可能溢出 |
示例
console.log(int("123")); // 输出: 123
console.log(int(3.14)); // 输出: 3
console.log(int(true)); // 输出: 1
console.log(int(false)); // 输出: 0
console.log(int(null)); // 输出: 0
console.log(int("")); // 输出: 0
console.log(int("hello")); // 输出: NaN
float
float类型是采用了IEEE 754标准的双精度浮点数类型,它占据 64 位(8 字节)内存空间,精度为:−263 到 2 63−1 。
精度相同的其他语言:
- Java中的
double - Golang中的
float64 - Nodejs中的
number - Python中的
float
- 最小值: -1.7976931348623157e+308
- 最大值: 1.7976931348623157e+308
变量声明
vino通过字面量来创建float类型的变量,提供了以下3种方式:
- 浮点数表示
整数通过0-9之间的数字和小数点.字面量来创建整数
//浮点型
let a = 12.1;
- 整数表示
// 整数+f
let a = 21f;
- 指数表示
指数表示法用于表示非常大的或非常小的数字,使用 e 或 E 表示乘以 10 的多少次方。
//指数
let n = 4.2e-2;
//打印0.042
console.log(n)
属性与方法
| 名称 | 类型 | 参数 | 返回值 | 说明 |
|---|---|---|---|---|
toFixed | 方法 | digits?: int | string | 将数字格式化为指定小数位数的字符串 |
toExponential | 方法 | fractionDigits?:int | string | 将数字格式化为指数表示法 |
toPrecision | 方法 | precision?:int | string | 根据指定的精度将数字格式化为字符串 |
toString | 方法 | radix?:int | string | 将数字转换为指定基数(进制)的字符串表示 |
toFixed
toFixed()方法用于将数字格式化为指定小数位数的字符串表示形式。这个方法对于处理货币和其他需要固定小数点表示的数值特别有用
语法
num.toFixed(digits?:int);
- digits(可选):小数点后数字的个数,介于0到100(包含0和100)之间的值。如果省略该参数或其值为0,则返回的字符串只包含整数部分。
返回值
返回一个表示固定小数位数的字符串。如果原始数字的小数部分长度超过digits指定的长度,则四舍五入到最接近的值。
示例
let num = 123.456;
console.log(num.toFixed()); // 输出:"123"
console.log(num.toFixed(2)); // 输出:"123.46"
console.log(num.toFixed(4)); // 输出:"123.4560"
注意事项
- 如果数字非常大或非常小,使其格式化后的字符串表示形式包含指数部分,则toFixed方法会先将数字转换为非指数形式,然后再应用四舍五入。
- 如果digits参数超出了允许的范围,toFixed方法会抛出RangeError异常。
- 使用toFixed方法返回的字符串可以通过parseFloat()或Number()函数转换回数字类型,但可能会因四舍五入而失去精度。
toExponential
toExponential()方法用于将数字转换为指数表示法(也称为科学计数法)的字符串形式。这个方法对于表示非常大或非常小的数值特别有用,因为它可以简洁地表示这些数值,同时保持一定的精度。
语法
num.toExponential(fractionDigits);
- fractionDigits(可选):一个整数,指定结果字符串中小数点后的位数。这个值的范围是0到100(包括0和100)。如果省略了fractionDigits,则使用尽可能多的数字来表示数值。
返回值
返回一个表示数字的指数形式的字符串。这个字符串由数字的第一位、小数点、fractionDigits指定的小数位数、字母e或E(表示10的幂次方),以及指数部分组成
示例
let num = 123456;
console.log(num.toExponential()); // 输出:"1.23456e+05"
console.log(num.toExponential(2)); // 输出:"1.23e+05"
console.log(num.toExponential(4)); // 输出:"1.2346e+05"
注意事项
- 如果fractionDigits参数不在允许的范围内,toExponential()方法会抛出RangeError。
- toExponential()方法返回的字符串总是包含至少一个小数位,即使小数部分为0。
- 这个方法对于分析和显示非常大或非常小的数值非常有用,因为它允许保持一定的精度,同时以紧凑的形式表示数值
toPrecision
toPrecision() 方法提供了一种将数字格式化为指定长度的字符串的方式。这个方法接受一个参数,即所需的有效数字位数(包括整数位和小数位),并根据这个长度将数字转换为字符串表示。如果数字的位数超过了指定的精度,则该数字会被四舍五入到合适的长度。如果指定的精度能够包含整个数字,则会按照常规的数字方式显示,而不是科学记数法。如果精度参数未指定,那么toPrecision() 方法的行为类似于调用toString(),返回标准的十进制数字字符串
语法
num.toPrecision(precision);
- precision(可选):一个整数,指定结果中有效数字的位数(包括整数位和小数位)。这个值的范围是0到100(包括0和100)。如果省略了precision,则返回标准的十进制数字字符串。
返回值
返回一个表示数字的字符串。根据指定的有效数字位数,可能以常规数字或科学记数法表示。
示例
let num = 12345.6789;
console.log(num.toPrecision()); // 不带参数,返回 "12345.6789"
console.log(num.toPrecision(2)); // 返回 "1.2e+4",数字以科学记数法表示,因为只指定了两位有效数字
console.log(num.toPrecision(6)); // 返回 "12345.7",四舍五入到6位有效数字
console.log(num.toPrecision(10)); // 返回 "12345.67890",原数字加上额外的零以达到10位有效数字
注意事项
- 如果toPrecision()调用时的参数超出了实现所能支持的范围(0到100之间,包括端点),则会抛出RangeError。
- toPrecision()方法对于特别大或特别小的数字可能会自动使用科学记数法,即使指定的有效数字位数足以用常规表示法表示数字。
float() 全局函数
float() 是一个全局类型转换函数,可将任意类型的值转换为 float 类型。
语法
float(value: any): float
转换规则
| 源类型 | 转换结果 |
|---|---|
null | 0.0 |
int | 转为等值的浮点数 |
float | 原值 |
string | 解析为浮点数。空字符串返回0.0,无法解析返回NaN |
boolean | true -> 1.0,false -> 0.0 |
array | 空数组返回0.0,单元素数组递归转换,多元素数组返回NaN |
bigint | 转为 float64,可能丢失精度 |
示例
console.log(float("3.14")); // 输出: 3.14
console.log(float(42)); // 输出: 42
console.log(float(true)); // 输出: 1
console.log(float(null)); // 输出: 0
console.log(float("")); // 输出: 0
console.log(float("hello")); // 输出: NaN
bigint
bigint类型表示任意精度的整数,不会受到固定位数限制,因此没有最大或最小值。
精度相同的其他语言:
- Java中的
BigInteger - Golang中的
big.Int - Nodejs中的
BigInt - Python中的
int
- 十进制表示
let a = 1234567890123456789012345678901234567890n;
- 二进制表示
二进制数字以 0b 或 0B 开头。
//二进制
let n = 0b101010n;
//打印42n
console.log(n)
- 八进制表示
八进制数字以 0o 或 0O 开头。
//八进制
let n = 0o52n;
//打印42n
console.log(n)
- 十六进制表示
十六进制数字以 0x 或 0X 开头。
//十六进制
let n = 0xFFn;
//打印255n
console.log(n)
属性与方法
| 名称 | 类型 | 参数 | 必须 | 返回值 | 说明 |
|---|---|---|---|---|---|
toString | 方法 | radix?:int | 否 | string | 将数字转换为指定基数(进制)的字符串表示。默认基数10(十进制) |
toString
toString()方法可以将一个数字转换成其字符串表示形式。这个方法是非常灵活的,因为它允许你指定基数(进制),从而可以将数字转换为不同进制的字符串表示。
语法
num.toString([radix]);
- radix(可选):用于指定数字的基数。radix的值可以是2到36之间的整数,允许你将数字转换为二进制、八进制、十进制、十六进制或任何其他小于或等于36的基数的字符串表示。
返回值
返回一个字符串
示例
let num = 10n;
console.log(num.toString(2)); // 转换为二进制,输出: "1010"
console.log(num.toString(8)); // 转换为八进制,输出: "12"
console.log(num.toString(10)); // 转换为十进制,输出: "10"
console.log(num.toString(16)); // 转换为十六进制,输出: "a"
注意事项
- 默认行为:如果不提供radix参数,toString()方法默认使用十进制。
- 范围:radix参数的有效范围是2到36。这个范围之外的值会导致
RangeError。 - 零的特殊情况:零在所有进制中都表示为"
0"。
boolean
布尔类型
let a = true;
let b = false;
null
空值类型
let a = null;
