JS数据类型解读

在JavaScript(JS)中,数据类型可以分为两大类:原始类型(Primitive Types)和引用类型(Reference Types)。以下是对每种数据类型的详细讲解:

一、原始类型(Primitive Types)

原始类型是不可变的数据类型,指的是其值本身不可改变。JavaScript 中有 7 种原始类型:

  1. Undefined

    • 只有一个值,即 undefined
    • 当一个变量被声明但未赋值时,其值就是 undefined
    let a;
    console.log(a); // undefined
    
  2. Null

    • 只有一个值,即 null
    • 通常表示一个空对象引用。
    let b = null;
    console.log(b); // null
    
  3. Boolean

    • 有两个值:truefalse
    • 用于逻辑判断。
    let isTrue = true;
    let isFalse = false;
    
  4. Number

    • 表示数字(整数和浮点数)。
    • JavaScript 中所有数字都是 64 位的浮点数。
    let num1 = 42;
    let num2 = 3.14;
    let num3 = NaN; // 表示“不是一个数字”(Not-a-Number)
    
  5. BigInt

    • 用于表示任意精度的整数。
    • 通过在整数末尾加 n 来表示。
    let bigInt = 1234567890123456789012345678901234567890n;
    
  6. String

    • 表示文本数据。
    • 可以用单引号、双引号或反引号(模板字面量)来定义。
    let str1 = "Hello";
    let str2 = 'World';
    let str3 = `Hello, ${str2}!`;
    
  7. Symbol

    • 表示唯一且不可变的值,通常用于对象的属性。
    let sym = Symbol('description');
    

二、引用类型(Reference Types)

引用类型是可以变的数据类型,即其值是可变的。常见的引用类型有:

  1. Object

    • 用于存储键值对的集合或复杂的实体。
    let obj = {
        name: "John",
        age: 30
    };
    
  2. Array

    • 一种特殊的对象,用于存储有序集合。
    let arr = [1, 2, 3, 4, 5];
    
  3. Function

    • 一种可调用的对象。
    function greet(name) {
        return `Hello, ${name}!`;
    }
    
  4. Date

    • 用于处理日期和时间。
    let now = new Date();
    
  5. RegExp

    • 正则表达式对象,用于模式匹配。
    let regex = /ab+c/;
    
  6. Map

    • 用于存储键值对,其中键可以是任意类型。
    let map = new Map();
    map.set('key', 'value');
    
  7. Set

    • 用于存储唯一值的集合。
    let set = new Set([1, 2, 3]);
    

详细示例

以下是一些使用常见数据类型的示例代码:

// Undefined
let x;
console.log(x); // undefined

// Null
let y = null;
console.log(y); // null

// Boolean
let isAvailable = true;
console.log(isAvailable); // true

// Number
let count = 42;
let price = 19.99;
console.log(count, price); // 42 19.99

// BigInt
let bigNumber = 123456789012345678901234567890n;
console.log(bigNumber); // 123456789012345678901234567890n

// String
let message = "Hello, world!";
console.log(message); // Hello, world!

// Symbol
let id = Symbol('id');
console.log(id); // Symbol(id)

// Object
let person = {
    name: "Alice",
    age: 25
};
console.log(person); // {name: "Alice", age: 25}

// Array
let numbers = [1, 2, 3, 4, 5];
console.log(numbers); // [1, 2, 3, 4, 5]

// Function
function sum(a, b) {
    return a + b;
}
console.log(sum(3, 4)); // 7

// Date
let now = new Date();
console.log(now); 

// 正则表达式
let pattern = /hello/i;
console.log(pattern.test("Hello, world!")); // true

// Map
let map = new Map();
map.set('name', 'John');
map.set('age', 30);
console.log(map.get('name')); // John

// Set
let set = new Set();
set.add(1);
set.add(2);
set.add(3);
console.log(set.has(2)); // true

通过上述示例,可以看到如何在JavaScript中定义和使用各种数据类型。原始类型的值是不可变的,而引用类型的值是可变的,理解这一点对于掌握JavaScript的变量和内存管理非常重要。

  • 31
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值