Python数据类型(js数据类型)

101 阅读2分钟

在 JavaScript 中,数据类型可以分为两大类:原始数据类型(Primitive Types)引用数据类型(Reference Types)

一、原始数据类型(Primitive Types)

原始数据类型的值是不可变的,直接存储在栈内存中。JavaScript 中有 7 种原始数据类型:

  1. Number
    表示整数和浮点数,例如:42, 3.14。还包括特殊值:NaN(非数字)、Infinity(无穷大)。

  2. String
    表示文本数据,例如:"Hello", 'World'。可以使用单引号、双引号或反引号(模板字符串)定义。

  3. Boolean
    表示逻辑值:truefalse

  4. Undefined
    表示变量已声明但未赋值,只有一个值:undefined

  5. Null
    表示空值,只有一个值:null。注意:typeof null 返回 "object"(这是历史遗留 bug)。

  6. Symbol(ES6 新增)
    表示唯一的、不可变的值,常用于对象属性的键。例如:Symbol('id')

  7. BigInt(ES2020 新增)
    表示任意精度的整数,用于处理大于 2^53 - 1 的整数。例如:123n

二、引用数据类型(Reference Types)

引用数据类型的值是可变的,存储在堆内存中,变量存储的是其内存地址。主要包括:

  1. Object
    • 普通对象:{ key: value }
    • 数组:[1, 2, 3](本质是特殊对象)
    • 函数:function() {}(可执行对象)
    • 日期:new Date()
    • 正则表达式:/pattern/
    • 其他内置对象:如 Map, Set, WeakMap, WeakSet 等。

三、注意事项

  • 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"(函数是特殊对象)
    
  • 类型判断技巧

    • 判断数组:Array.isArray(arr)arr instanceof Array
    • 判断 nullvariable === null

四、总结表

类型示例typeof 结果
Number42, 3.14"number"
String"hello""string"
Booleantrue, false"boolean"
Undefinedundefined"undefined"
Nullnull"object"
SymbolSymbol('id')"symbol"
BigInt123n"bigint"
Object{}, [], new Date()"object"
Functionfunction(){}"function"

希望这个总结对你有帮助!如果有进一步问题,欢迎继续提问。