码迷,mamicode.com
首页 > Web开发 > 详细

JS基本类型和引用类型

时间:2019-01-05 22:40:30      阅读:268      评论:0      收藏:0      [点我收藏+]

标签:存储   fine   数据   ons   strong   code   style   引用   bool   

基本数据类型:  Undefined, Null,Boolean,Number,String Symbol(es6新加)

引用类型:  Object,Array,Data,RegExp,Function,基本包装类型,单体内置对象

基本类型跟引用类型的分别:

1. 基本类型保存在栈中,而引用类型保存在堆中

2. 在将一个值 复制给变量时,解析器需确定这个值是基本类型和引用类型

  如果值是基本类型,那么存储的就是值,

  如果值是引用类型存储的是地址(也就是指针),这个地址指向的就是这个堆空间

基本类型跟引用类型都是按值传递的

var a = [1,2,3]
var b =  a;
b.push(4)
console.log(a)  // [1,2,3,4]

上面这段代码 就是一个很好的说明 a 是一个引用类型, 因此它的值存储的就是地址,并且a把值赋值给变量b,因此a跟b都指向了

一个数组, 所以当b发生改变了 , a也跟着改变了

传递参数

function setName(obj) {
obj.name = "Nicholas";
}
var person = new Object();
setName(person);
alert(person.name); //"Nicholas"

当把变量person传入到了 setName函数中 , 此时变量person的值就传递给了函数内部的obj,因为传递的值是地址,所以obj添加了一个属性name,

那么也相当于给person添加上了,所以person.name  = "Nicholas"


function test(m){
m ={v:5}
}
var m = {k:30};
test(m);
console.log(m.v) // undefined

变量 m 传递给函数test,把变量m的值传递给了函数内部中的m,但是函数数内部又开了一个新的空间,此时的函数内部中的变量m地址已经发生改变了了,所以跟全局变量 m 无关

JS基本类型和引用类型

标签:存储   fine   数据   ons   strong   code   style   引用   bool   

原文地址:https://www.cnblogs.com/qinwang199/p/10226121.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!