JS也存在有指针这一说法吗

JavaScript05

JS也存在有指针这一说法吗,第1张

指针其实就是内存地址,能够操作指针,就表示程序可以直接操作内存,这对于运行于网页中的js脚本是非常危险的,浏览器以及操作系统都不可能让这样的事发生,所以js脚本不可能有指针的概念,只能引用由浏览器分配的内存,至于这个内存的物理地址究竟是什么,则至少对于js的编程者而言是不透明的。

JS基本数据类型的变量存放的是基本类型数据的实际值;而引用数据类型的变量保存对它的引用,即指针。

JS基本数据类型:null undefined number boolean

string比较特殊

引用数据类型:function object array

var a = 11

var b = 1

b = 12

console.log(a)//11 a的值不会随b值得改变而改变

var a = [1,2,3]

var b = a

a[0] = 2

console.log(b[0]) //2, b的值随着a的值改变而改,因为他们指向同一个内存地址

var a = [1,2,3]

var b = a

b = [11, 12, 13]//b指向了另一个内存地址,与a断开关联

a[0] = 2

console.log(b[0]) //11,b的值不随a的值改变而改变

比如说 var a = 11是基本数据类型,因此变量a存放的就是1这个值

var b = [1,2,3],[1,2,3]是引用数据类型,[1,2,3]是放在内存中的,而变量b存放的是[1,2,3]的地址,而不是[1,2,3]这个值

当使用b这个变量时,js解释器会通过b存放的内存地址,找到内存中的相应地址,将其中的值取出来返回

JS基本数据类型的变量存放的是基本类型数据的实际值;而引用数据类型的变量保存对它的引用,即指针。

JS基本数据类型:null

undefined

number

boolean

string比较特殊

引用数据类型:function

object

array

var

a

=

11

var

b

=

1

b

=

12

console.log(a)

//11

a的值不会随b值得改变而改变

var

a

=

[1,2,3]

var

b

=

a

a[0]

=

2

console.log(b[0])

//2,

b的值随着a的值改变而改,因为他们指向同一个内存地址

var

a

=

[1,2,3]

var

b

=

a

b

=

[11,

12,

13]//b指向了另一个内存地址,与a断开关联

a[0]

=

2

console.log(b[0])

//11,b的值不随a的值改变而改变

比如说

var

a

=

1

1是基本数据类型,因此变量a存放的就是1这个值

var

b

=

[1,2,3],[1,2,3]是引用数据类型,[1,2,3]是放在内存中的,而变量b存放的是[1,2,3]的地址,而不是[1,2,3]这个值

当使用b这个变量时,js解释器会通过b存放的内存地址,找到内存中的相应地址,将其中的值取出来返回