HLJ 发布于
2025-06-10 17:28:14
0阅读

JavaScript 基础知识:数据类型

JavaScript 基础知识:数据类型

JavaScript 是一种动态类型语言,这意味着变量可以随时持有任何类型的数据,而不需要在声明时指定类型。JavaScript 中的数据类型主要分为两大类:原始类型(基本类型)对象类型(引用类型)

原始类型(Primitive Types)

原始类型是不可变的(immutable),直接存储在栈内存中,包括以下7种:

  1. Number - 数字类型

    let age = 25;
    let pi = 3.14;
    let infinity = Infinity;
    let nan = NaN; // Not a Number
    
  2. String - 字符串类型

    let name = "Alice";
    let greeting = 'Hello';
    let template = `Hello, ${name}`; // 模板字符串
    
  3. Boolean - 布尔类型

    let isActive = true;
    let isCompleted = false;
    
  4. Null - 空值

    let empty = null; // 表示有意为空值
    
  5. Undefined - 未定义

    let notDefined; // 默认值为undefined
    let alsoUndefined = undefined;
    
  6. Symbol (ES6新增) - 唯一且不可变的值

    let sym1 = Symbol('description');
    let sym2 = Symbol('description');
    console.log(sym1 === sym2); // false
    
  7. BigInt (ES2020新增) - 大整数

    let bigNum = 1234567890123456789012345678901234567890n;
    

对象类型(Object Types)

对象类型是可变的(mutable),存储在堆内存中,变量存储的是对象的引用(内存地址)。包括:

  1. Object - 普通对象

    let person = {
      name: 'Bob',
      age: 30
    };
    
  2. Array - 数组

    let numbers = [1, 2, 3, 4, 5];
    let mixed = [1, 'two', true, null];
    
  3. Function - 函数

    function greet(name) {
      return `Hello, ${name}!`;
    }
    
  4. Date - 日期

    let now = new Date();
    
  5. RegExp - 正则表达式

    let pattern = /abc/;
    
  6. 其他内置对象:如 Map, Set, WeakMap, WeakSet 等

类型检测方法

  1. typeof 操作符

    typeof 42;          // "number"
    typeof 'hello';     // "string"
    typeof true;        // "boolean"
    typeof undefined;   // "undefined"
    typeof null;        // "object" (历史遗留问题)
    typeof Symbol();    // "symbol"
    typeof 123n;        // "bigint"
    typeof {};          // "object"
    typeof [];          // "object"
    typeof function(){};// "function"
    
  2. instanceof 操作符 - 检测对象类型

    [] instanceof Array;    // true
    {} instanceof Object;    // true
    new Date() instanceof Date; // true
    
  3. Object.prototype.toString.call()

    Object.prototype.toString.call([]);      // "[object Array]"
    Object.prototype.toString.call(null);    // "[object Null]"
    Object.prototype.toString.call(undefined); // "[object Undefined]"
    

类型转换

JavaScript 会自动进行隐式类型转换,也可以显式转换:

  1. 显式转换

    Number('123');    // 123
    String(123);      // "123"
    Boolean(1);       // true
    
  2. 隐式转换

    '5' + 1;          // "51" (字符串拼接)
    '5' - 1;          // 4 (数字运算)
    true + 1;         // 2
    null + 1;         // 1
    undefined + 1;    // NaN
    

理解 JavaScript 的数据类型是掌握这门语言的基础,特别是在处理类型转换和比较操作时尤为重要。

当前文章内容为原创转载请注明出处:http://www.good1230.com/detail/2025-06-10/762.html
最后生成于 2025-06-13 20:51:54
此内容有帮助 ?
0