JavaScript的数据类型

数据类型

在Javascript中每个值都有各自的类型,Javascript提供了7种原始类型:

  • Number: 表示整数和浮点数(除了非常大的整数之外的所有数值)

  • BigInt: 表示任意大整数

  • String: 文本

  • Boolean:true 和 false

  • Symbol:用来创建唯一的标识符

  • Undefined:表示未被赋值的变量

  • Null: 表示空值

其它的值我们称为对象。

数值(Number and BigInt)

Number 

Number 是 JavaScript 中最基本的数字类型,它用于表示整数和浮点数。Number类型是基于 IEEE 754 标准的双精度浮点数(64位)

特点:

  • 范围Number 类型可以表示从  -(2^{53} - 1) 到  2^{53} - 1 的整数,以及只能存储到1.79\times 10^{308}浮点数。在 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 类型用于表示文本数据。

基本特性

  1. 不可变性

    • JavaScript 的字符串是不可变的,这意味着一旦创建了一个字符串,就不能直接修改它的内容。如果需要修改字符串,必须创建一个新的字符串对象。

  2. 字面量表示

    • 字符串可以用单引号 (') 或双引号 (") 来表示。

    • 也可以使用模板字符串(反引号 `)来创建多行字符串或嵌入表达式。

  3. 属性和方法

    • 字符串对象有许多内置的方法,可以在字符串上调用这些方法来执行各种操作。

示例

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

表示一个未定义的值或者尚未被赋值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值