《JS高程》基本类型和引用类型的值学习笔记

ECMAScript 变量可能包含两种不同数据类型的值:基本类型值和引用类型值。

创建方式类似:创建一个变量并为其赋值。

(1)基本类型值和引用类型值比较


基本类型值

引用类型值

简单的数据段

可能由多个值构成的对象
值源自5种基本数据类型:
Undefined、Null、Boolean、Number 和 String

值是保存在内存中的对象
在内存中占据固定大小的空间,保存在栈内存中 保存在堆内存中

按值访问

按引用访问
不能添加属性
能动态地添加和删除属性
复制变量值时,创建一个新值(副本)
值的副本是一个指针,指向存储在堆中的一个对象
确定一个值是哪种基本类型:typeof 操作符
确定一个值是哪种引用类型:instanceof 操作符

(2)复制变量值

I.复制类型值的过程:

 如果从一个变量向另一个变量复制基本类型的值,会在变量对象上创建一个新值,然后把该值复制到为新变量分配的位置上。

II.复制引用类型值的过程:

 当从一个变量向另一个变量复制引用类型的值时,同样也会将存储在变量对象中的值复制一份放到为新变量分配的空间中。不同的是,这个值的副本实际上是一个指针,而这个指针指向存储在堆中的一个对象。

(3)参数传递

 ECMAScript 中所有函数的参数都是按值传递的。即,基本类型值的传递如同基本类型变量的复制一样,而引用类型值的传递,则如同引用类型变量的复制一样。

(4)检测类型

 检测基本数据类型:typeof 操作符是确定一个变量是字符串、数值、布尔值,还是 undefined 的最佳工具。

 检测引用类型的值/对象的类型:instanceof 操作符

 在检测一个引用类型值和 Object 构造函数时,instanceof 操作符始终会返回 true,如果使用 instanceof 操作符检测基本类型的值,则该操作符会始终返回 false,因为基本类型不是对象。

 *ECMA-262 规定任何在内部实现 [[call]] 方法的对象都应该在应用 typeof 操作符时返回“function”。在不同的浏览器中对正则表达式应用 typeof 返回不同值,function 或 object。

时间: 2024-10-12 23:32:31

《JS高程》基本类型和引用类型的值学习笔记的相关文章

JS 基本类型和引用类型的值

对于引用类型的值,可以为其添加属性和方法,也可以改变和删除其属性和方法.如下: var person = new Object(); person.name = "Jack"; alert(person.name); //"Jack" 以上代码创建了一个对象并将其保存在了变量 person 中.然后,为该对象添加了一个名为 name 的属性,并将字符串值 "Jack" 赋给了这个属性.紧接着,又通过 alert() 函数访问了这个新属性.如果对象

JavaScript基本类型和引用类型的值

JS变量可能包含两种不同数据类型的值:基本类型值和引用类型值.基本类型指的是简单的数据段,而引用类型值那些由多个值构成的对象: 在将一个值赋给变量时,解析器必须确定这个值是基本类型值还是引用类型值.JS有5种基本数据类型:Undefined, Null,Boolean,Number和String.这5种基本数据类型是按值访问的.因为可以操作保存在变量中的实际的值. 引用类型的值保存在内存中的对象.与其他语言不同,JavaScript不允许直接访问内存中的位置,也就是说不能直接操作对象的内存空间.

JS 对基本类型和引用类型的判断

啰啰嗦嗦写了很多,把原本几句话就可以交待的东西扯得那么长.. 但在我曾经对这个问题感到困惑时,就希望能找到让我知其然并知其的讲解. 限于自己的知识和文章篇幅,我无法讲得多么细致,甚至不能保证正确性. 我只能把自己对js的理解写出来,大家可以批判着看. 着急找答案的朋友可以直接翻到后面看总结.. ------------------------------------------------------------------------------------------------------

变量——基本类型和引用类型的值

基本类型和引用类型的值 一.综述 ECMAScript变量可能包含两种不同的数据类型的值:基本类型值和引用类型值. 基本类型值是指简单的数据段,而引用类型值指那些可能由多个值构成的对象. 在给一个变量赋值时,解析器必须确定这个值是基本类型值还是引用类型值. 5种基本数据类型(Undefined.Null.Boolean.Number.String)是按值访问的,因此可以操作保存在变量中实际的值. 引用类型的值是保存在内存中的对象.与其他语言不同,JavaScript不允许直接访问内存中的位置也就

《JavaScript高级程序设计》读书笔记 ---基本类型和引用类型的值

变量.作用域和内存问题 基本类型和引用类型的值ECMAScript 变量可能包含两种不同数据类型的值:基本类型值和引用类型值.基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象.在将一个值赋给变量时,解析器必须确定这个值是基本类型值还是引用类型值.第3 章讨论了5 种基本数据类型:Undefined.Null.Boolean.Number 和String.这5 种基本数据类型是按值访问的,因为可以操作保存在变量中的实际的值.引用类型的值是保存在内存中的对象.与其他语言不同,J

基本类型和引用类型的值 [重温JavaScript基础(一)]

前言: JavaScript 的变量与其他语言的变量有很大区别.JavaScript 变量松散类型的本质,决定了它只是在特定时间用于保存特定值的一个名字而已.由于不存在定义某个变量必须要保存何种数据类型值的规则,变量的值及其数据类型可以在脚本的生命周期内改变.尽管从某种角度看,这可能是一个既有趣又强大,同时又容易出问题的特性,但 JavaScript 变量实际的复杂程度还远不止如此 基本类型和引用类型的值 复制变量值 传递参数 检测类型 基本类型和引用类型的值 ECMAScript 变量可能包含

JS基本类型和引用类型的值

JS中可以把变量分成两部分,基本类型和引用类型. 基本类型比较简单,包括:Undefined.Null.Boolean.Number和String,基本类型值就是简单的数据段:引用类型值可能由多个值构成的对象. 引用类型值保存在内存中,而JS是不能直接访问内存的,所以对于引用类型,操作的不是实际的对象而是对象的引用. 注:string在ECMAScript中不是引用类型,和其他许多语言不同. 接下来主要说明引用类型值的一些问题. 1.动态属性. JS中对象的属性可以动态的添加并且赋值的,比如:

【Java】基本类型和引用类型(值传递)

[关键词] [问题] · 加深对基本类型和引用类型的理解: [效果图] [分析] 參见最后的[參考资料] [解决方式] [代码] public void test() throws Exception { System.out.println("\nint:================="); int i = 2; System.out.println("before:" + i); change1(i); System.out.println("af

基本类型和引用类型的值

一:什么是基本类型和引用类型值 1. 基本类型值指的是简单的数据段 2. 引用类型指那些可能有多个值组成的对象 3. 在赋值变量时,解析器必须确定这个是基本类型值还是引用类型值 4. 有5种基本数据类型:Underfined,Null,Boolean,Unmber和String.这5种可以直接操作保存在变量种的实际值. 5. 引用类型的值保存在内存的对象中,javascript不允许直接访问内存中的位置.操作对象时,实际操作的是对象的引用而不是实际对象.因此,引用类型的值是引用访问的. 二:动态