`
bornlone
  • 浏览: 30017 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

JavaScript 值类型——原始值、引用值

阅读更多

    在 JavaScript 中,变量可以存放两种类型的值,即原始值和引用值。

 

    原始值是存储在栈中的简单数据段,也就是说,它们的值直接存储在变量访问的位置。

 

    引用值是存储在堆中的对象,也就是说,存储在变量处的值是一个指针,指向存储对象的内存处。

 

    为变量赋值时,JavaScript 的解释程序必须判断该值是原始类型的,还是引用类型的。要实现这一点,解释程序则需要尝试判断该值是否为 JavaScript 的原始类型之一,即 Undefined、Null、Boolean、String类型。由于这些原始类型占据的空间是固定的,所以可以将它们存储在较小的内存区域——栈中。这样便于迅速查寻变量的值。

 

    在许多语言中,字符串都被看作是引用类型,而非原始类型,因为字符串的长度是可变的。JavaScript 打破了这一传统。

 

    如果一个值是引用类型的,那么它的存储空间将从堆中分配。由于引用值的大小会改变,所以不能把它放在栈中,否则会降低变量查寻的速度。相反,放在变量的栈空间中的值是该对象存储在堆中的地址。地址的大小是固定的,所以把它存储在栈中对变量性能无任何负面影响。

分享到:
评论

相关推荐

    引用类型与值类型的运算

    在探讨“引用类型与值类型的运算”这一主题时,我们需要深入了解JavaScript中两种基本的数据类型——值类型和引用类型,并理解它们之间如何进行运算。本文将根据提供的内容进行深入解析。 ### 引用类型与值类型的...

    理解Javascript内存分配原理

    在JavaScript中,原始值和引用值分别存储在不同的内存区域——栈和堆中。 ##### 栈 栈是一种后进先出(LIFO)的数据结构。在JavaScript中,原始值直接存储在栈中。栈的特点是访问速度快,但存储空间有限。当程序...

    javascript类型系统——undefined和null全面了解

    JavaScript 类型系统中,`undefined` 和 `null` 是两种重要的原始值,它们各自具有特定的含义和用途。本文将深入探讨这两种类型的起源、差异、使用场景以及类型转换。 首先,`undefined` 在 JavaScript 中主要表示...

    JavaScript基础教程——入门必看篇

    2. **数据类型**:JavaScript有六种原始数据类型(Undefined、Null、Number、String、Boolean和Symbol,Symbol是ES6新增的)以及一种复杂数据类型(Object)。 3. **undefined 和 null 的区别**:undefined 表示变量...

    JavaScript类型系统之布尔Boolean类型详解_.docx

    布尔类型不是JavaScript中的引用类型,而是原始类型。然而,存在与之相关的包装对象——`Boolean`对象,这可能会导致一些混淆。当使用`new Boolean()`创建一个布尔对象时,实际上是创建了一个包含布尔值的Object,而...

    JavaScript对象经典小册 chm

    4. 原始包装类型:JavaScript有三种原始包装类型(Boolean、Number、String),它们提供了对象化的接口,允许我们对原始值进行方法调用。 5. this关键字:this在JavaScript中用于引用当前执行上下文的对象,它的值...

    JavaScript基础教程 精简版

    此外,还有一种引用类型——Object,它可以包含任何数据。 运算符是JavaScript中执行计算或比较任务的符号。包括算术运算符(如+、-、*、/)、比较运算符(如==、===、<、>)和逻辑运算符(如&&、||、!)。还有特殊...

    Javascript快速查阅手册,贼牛逼

    - **数据类型**:JavaScript 支持两种主要的数据类型——原始类型和引用类型。 - **原始类型**:包括 `String`, `Number`, `Boolean`, `Undefined`, `Null`。 - **String**:用于表示文本。 - **Number**:可以...

    JavaScript试题集

    - JavaScript中的数据类型分为原始类型(primitive types)和引用类型(reference types)。 - **原始类型**包括:`number`、`string`、`boolean`、`null`、`undefined`。 - **引用类型**包括:`object`(包括`...

    javascript学习ppt文档

    2. **数据类型**:JavaScript有两种基本数据类型——原始类型(如字符串、数字、布尔值、null和undefined)和引用类型(如对象)。此外,ES6引入了新的数据类型Symbol和BigInt。 3. **变量**:JavaScript使用var、...

    JS 数据类型转换

    **Null**:虽然在语法上Null看起来像是一个对象,但它是一个原始类型,表示一个空或无值的引用。与Undefined不同,Null是一个明确的值。 **Boolean**:包含两个值:true和false,用于逻辑运算。任何非零数字和非空...

    JavaScript基础笔记.md

    - **Boolean**:布尔值类型,只有两个值:`true`和`false`。 - **Null**:表示尚未存在的对象,常用来表示“没有对象”的地方。 - **Undefined**:表示尚未赋值的变量,默认值为`undefined`。 - **引用数据类型**...

    悟透javascript(精简版)

    在《悟透JavaScript(精简版)》这本书中,作者李战(leadzen)以独特的视角探讨了编程世界的本质——数据与代码之间的关系。他通过生动的比喻,将数据与代码的关系比作物质与能量的关系,形象地描述了两者之间既...

    JavaScript 高级教程

    - **值与类型**:ECMAScript支持两种类型的值——原始值和引用值。原始类型包括Undefined、Null、Boolean、Number和String等,而引用类型则是指对象类型。 - **类型转换**:ECMAScript提供了自动和显式类型转换机制...

    javascript jquery案例

    2. **数据类型**:JavaScript 有两种基本数据类型——原始类型(如字符串、数字、布尔值、null 和 undefined)和引用类型(如对象和数组)。 3. **DOM操作**:Document Object Model (DOM) 是HTML和XML文档的结构化...

    JavaScript 经典经典课件

    课件中可能包括了JavaScript的基础语法,如变量声明(var、let、const)、数据类型(原始类型和引用类型)、操作符(算术、比较、逻辑、三元)、流程控制(条件语句、循环语句)、函数(函数表达式、箭头函数)以及...

Global site tag (gtag.js) - Google Analytics