在 JavaScript 中,数据类型分为两大类:原始和非原始(参考)类型。这种区别对于理解数据如何在内存中存储和访问至关重要。让我们分解每种类型,看看它们是如何工作的。
JavaScript 有 7 种基本数据类型:
字符串
表示文本数据,例如“Hello World”。
数字
表示整数和浮点数,例如 100、100.3。与其他一些语言不同,JavaScript 不区分整数和浮点数——它们都只是数字。
const score = 100; const scoreValue = 100.3; console.log(typeof scoreValue); // Output: number
布尔值
代表逻辑值:true 或 false。
const isLoggedIn = true; console.log(typeof isLoggedIn); // Output: boolean
符号
代表一个唯一的标识符。即使使用相同的描述创建两个符号,它们也是不同的。
const id = Symbol('123'); const anotherId = Symbol('123'); console.log(id === anotherId); // Output: false
空
表示有意缺少任何对象值。
const outsideTemp = null; console.log(typeof outsideTemp); // Output: object
未定义
表示已声明但尚未赋值的变量。
let weather; console.log(typeof weather); // Output: undefined
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,因为已创建该值的新副本。
非原始类型,也称为引用类型,包括:
数组
可以是任何类型的元素集合,存储为列表。
const heros = ["ironman", "spiderman", "batman"]; console.log(typeof heros); // Output: object
对象
键值对的集合,其中键是字符串或符号,值可以是任何类型。
let myObj = { name: "Ayush", age: 21, }; console.log(typeof myObj); // Output: object
功能
旨在执行特定任务的代码块,可以存储在变量中。
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 数据类型:原始与非原始的详细内容。更多信息请关注PHP中文网其他相关文章!