JavaScript中的值类型以及引用类型

JavaScript中的值类型以及引用类型

最近在研究JavaScript时发现JavaScript和Swift一样,也存在值类型和引用类型相关概念可能所谓的“称呼”不一样?。值类型和引用类型在进行变量赋值时候的区别在于在对一个值类型进行赋值时是对原有变量进行了值copy,老的变量值发生改变后新的变量不会“跟着”变化,引用类型则相反

1.举个例子:

var m = 2

var n = m

var instance = {

    name:'tom'
}

var  instance2 = instance

function func() {

    console.log(`m == ${m}`)
}

m = 6;

instance.name = 'luck'

console.log(n,instance2.name)

/*控制台输出 2 luck*/

2 数据类型分类

中Number、String 、Boolean、都是值类型。Object,Function,Array都是引用类型。

3 JavaScript中值类型以及引用类型函数参数传递,值类型在作为函数参数时会把其值传递到函数体内,引用类型则是会把指针的地址传递到函数体内。

举例?:

var j = 10

var tom = {

    name:'tom'
}

function func2(valueType,quoteType) {

   valueType = valueType + 10;

   quoteType.name  = 'new name'
}

func2(j,tom)

console.log(j,tom.name)

//控制台输出 10 'new name'