数据类型
在Javascript中每个值都有各自的类型,Javascript提供了7种原始类型:
Number: 表示整数和浮点数(除了非常大的整数之外的所有数值)
BigInt: 表示任意大整数
String: 文本
Boolean:true 和 false
Symbol:用来创建唯一的标识符
Undefined:表示未被赋值的变量
Null: 表示空值
其它的值我们称为对象。
数值(Number and BigInt)
Number
Number 是 JavaScript 中最基本的数字类型,它用于表示整数和浮点数。Number类型是基于 IEEE 754 标准的双精度浮点数(64位)
特点:
-
范围:Number 类型可以表示从
到
的整数,以及只能存储到
浮点数。在 Number中, JavaScript无法区分浮点数和整数。
-
精度:对于整数部分,Number 类型具有很高的精度;但对于非常大的整数或非常小的浮点数,精度会降低。
-
自动转换:JavaScript会自动将其他类型的值转换为 Number 类型,例如字符串
"10"
会被自动转换为数字10。
示例:
let num1 = 123; // 整数
let num2 = 123.456; // 浮点数
let num3 = "123"; // 字符串转换为数字
let num4 = Number("123"); // 显式转换
BigInt
BigInt 类型是在 ES2020 版本中引入的,专门用来处理超出Number类型范围的大整数。BigInt 类型通过在数字后面加上字母 n 或使用 BigInt() 构造函数来创建。
特点:
-
范围:BigInt 可以表示任意大小的整数,不受固定范围的限制。
-
精度:BigInt 类型不会丢失精度,可以精确表示任意大小的整数。
-
操作:BigInt 类型支持标准的算术运算,如加法、减法、乘法、除法和取余运算,但需要注意的是,除法的结果仍然是 Number 类型,除非你显式地使用 BigInt 进行操作。
示例:
let bigNum1 = 12345678901234567890n; // 大整数
let bigNum2 = 12345678901234567890n + 98765432109876543210n; // 加法
console.log(bigNum2); // 输出: 111111111011111111110n
// 显式转换
let num = 123;
let bigNum = BigInt(num); // 123n
String
在 JavaScript 中, String 类型用于表示文本数据。
基本特性
不可变性:
JavaScript 的字符串是不可变的,这意味着一旦创建了一个字符串,就不能直接修改它的内容。如果需要修改字符串,必须创建一个新的字符串对象。
字面量表示:
字符串可以用单引号 (
'
) 或双引号 (") 来表示。也可以使用模板字符串(反引号
`
)来创建多行字符串或嵌入表达式。属性和方法:
字符串对象有许多内置的方法,可以在字符串上调用这些方法来执行各种操作。
示例
let str1 = 'Hello, World!'; // 单引号
let str2 = "Hello, World!"; // 双引号
let str3 = `Hello, ${'World'}!`; // 模板字符串
String方法
JavaScript 字符串提供了丰富的内置方法,可以方便地进行各种操作。以下是一些常用的字符串方法:
- length 属性:
let str = 'Hello, World!';
console.log(str.length); // 输出: 13
-
charAt 方法:
let str = 'Hello, World!';
console.log(str.charAt(0)); // 输出: H
console.log(str.charAt(7)); // 输出: W
-
charCodeAt 方法:
let str = 'Hello, World!';
console.log(str.charCodeAt(0)); // 输出: 72 (字符'H'的 Unicode 编码)
console.log(str.charCodeAt(7)); // 输出: 87 (字符'W'的 Unicode 编码)
-
concat 方法:
let str1 = 'Hello';
let str2 = 'World';
console.log(str1.concat(' ', str2)); // 输出: Hello World
-
includes 方法:
let str = 'Hello, World!';
console.log(str.includes('World')); // 输出: true
-
indexOf 方法:
let str = 'Hello, World!';
console.log(str.indexOf('World')); // 输出: 7
-
lastIndexOf 方法:
let str = 'Hello, World, World!';
console.log(str.lastIndexOf('World')); // 输出: 14
-
replace 方法:
let str = 'Hello, World!';
console.log(str.replace('World', 'JavaScript')); // 输出: Hello, JavaScript!
-
slice 方法:
let str = 'Hello, World!';
console.log(str.slice(0, 5)); // 输出: Hello
console.log(str.slice(-5)); // 输出: orld!
-
split 方法:
let str = 'Hello, World!';
console.log(str.split(',')); // 输出: ["Hello", " World!"]
console.log(str.split(' ')); // 输出: ["Hello,", "World!"]
-
toLowerCase 方法:
let str = 'Hello, World!';
console.log(str.toLowerCase()); // 输出: hello, world!
-
toUpperCase 方法:
let str = 'Hello, World!';
console.log(str.toUpperCase()); // 输出: HELLO, WORLD!
其它类型
Boolean
布尔值表示逻辑 true 或者 false。支持布尔运算,如:&& (逻辑与),|| (逻辑或), !(逻辑非) 等。
Null
表示空值或者不存在的对象。
Undefined
表示一个未定义的值或者尚未被赋值。