首页 > web前端 > js教程 > 正文

日间理解 JavaScript 数据类型:原始与非原始

王林
发布: 2024-09-03 21:08:20
原创
179 人浏览过

Day nderstanding JavaScript Data Types: Primitive vs. Non-Primitive

在 JavaScript 中,数据类型分为两大类:原始非原始(参考)类型。这种区别对于理解数据如何在内存中存储和访问至关重要。让我们分解每种类型,看看它们是如何工作的。

原始数据类型

JavaScript 有 7 种基本数据类型:

  1. 字符串

    表示文本数据,例如“Hello World”。

  2. 数字

    表示整数和浮点数,例如 100、100.3。与其他一些语言不同,JavaScript 不区分整数和浮点数——它们都只是数字。

    const score = 100;
    const scoreValue = 100.3;
    console.log(typeof scoreValue); // Output: number
    
    登录后复制
  3. 布尔值

    代表逻辑值:true 或 false。

    const isLoggedIn = true;
    console.log(typeof isLoggedIn); // Output: boolean
    
    登录后复制
  4. 符号

    代表一个唯一的标识符。即使使用相同的描述创建两个符号,它们也是不同的。

    const id = Symbol('123');
    const anotherId = Symbol('123');
    console.log(id === anotherId); // Output: false
    
    登录后复制


  5. 表示有意缺少任何对象值。

    const outsideTemp = null;
    console.log(typeof outsideTemp); // Output: object
    
    登录后复制
  6. 未定义

    表示已声明但尚未赋值的变量。

    let weather;
    console.log(typeof weather); // Output: undefined
    
    登录后复制
  7. BigInt

    表示任意精度的整数,允许您处理超出 Number 安全整数限制的大数。

    const bigNumber = 23873847283748289483n;
    console.log(typeof bigNumber); // Output: bigint
    
    登录后复制
原始数据类型:按值调用

基本类型直接存储在与变量关联的内存位置中。当您将原始值分配给另一个变量时,会创建该值的新副本。

let myName = "Aman";
let myOtherName = myName;
myOtherName = "Dawn";
console.log(myName);       // Output: Aman
console.log(myOtherName);  // Output: Dawn
登录后复制

在上面的示例中,更改 myOtherName 不会影响 myName,因为已创建该值的新副本。

非原始数据类型

非原始类型,也称为引用类型,包括:

  1. 数组

    可以是任何类型的元素集合,存储为列表。

    const heros = ["ironman", "spiderman", "batman"];
    console.log(typeof heros); // Output: object
    
    登录后复制
  2. 对象

    键值对的集合,其中键是字符串或符号,值可以是任何类型。

    let myObj = {
        name: "Ayush",
        age: 21,
    };
    console.log(typeof myObj); // Output: object
    
    登录后复制
  3. 功能

    旨在执行特定任务的代码块,可以存储在变量中。

    const myFunction = function() {
        console.log("Hello World");
    };
    console.log(typeof myFunction); // Output: function
    
    登录后复制
非原始数据类型:通过引用调用

非原始类型存储在堆中,变量保存对实际数据的引用(内存地址)。当您将非基本类型分配给另一个变量时,两个变量都指向相同的内存位置。

let userOne = {
    email: "user1@google.com",
    upi: "user@ybl"
};
let userTwo = userOne;
userTwo.email = "aman@google.com";
console.log(userOne.email);  // Output: aman@google.com
console.log(userTwo.email);  // Output: aman@google.com
登录后复制

在上面的示例中,修改 userTwo.email 也会更改 userOne.email,因为这两个变量都引用内存中的同一对象。

要点

  • 原始类型是直接存储值的简单数据类型。它们是不可变的,每个变量都保存自己的数据副本。
  • 非原始类型更加复杂,变量存储对数据的引用。对一个变量的更改可能会影响引用相同数据的其他变量。
  • 理解这些差异对于在 JavaScript 中编写高效且无错误的代码至关重要。

编码愉快,下一篇见!

以上是日间理解 JavaScript 数据类型:原始与非原始的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!