JavaScript值类型

这篇博客详细解释了JavaScript中的值类型(如Number, String, Boolean等)和引用类型(如Array, Object, Function等)的区别。值类型在赋值时会在栈中进行拷贝,而引用类型则在堆中通过指针拷贝,导致对原始值的修改不会影响已赋值的副本。文中通过实例展示了这两种类型的赋值行为,并强调了当引用类型重新分配值时,会创建新的内存空间。
摘要由CSDN通过智能技术生成

JavaScript是值决定类型(动态语言),其他大部分语言是类型决定值

原始值:stack(放栈里)

Number String Boolean undefined null

引用值:heap(放堆里)

array Object function ... date RegEx

引用值和原始值唯一的不同是赋值形式的不同


原始值:

var a = 10;

var b =  a;//a的值放b里面去

a = 20;

document.write(b);//10

第一个值放第二个值里面,第一个值(a)改变,第二个值(b)不变

stack 拷贝(cope)所以互相不影响watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5qmZ5a2Q5ZGz55qE5aSq6Zm9,size_20,color_FFFFFF,t_70,g_se,x_16

var num = 100;

num = 200;正确的栈内写法哟 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5qmZ5a2Q5ZGz55qE5aSq6Zm9,size_20,color_FFFFFF,t_70,g_se,x_16


 


引用值:

var arr = [1];

var arr1 = arr;

arr.push(2);

document.write(arr);//1,2

document.write(arr1);//1,2

第一个值放第二个值里面,第一个值改变,第二个值也改变

heap 指针 拷贝的地址 指向同一个房间

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5qmZ5a2Q5ZGz55qE5aSq6Zm9,size_20,color_FFFFFF,t_70,g_se,x_16

注意!!!:

var arr = [1];

var arr1 = arr;

arr = [1,3];开辟新的房间呀!!

document.write(arr1);//1,2

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5qmZ5a2Q5ZGz55qE5aSq6Zm9,size_20,color_FFFFFF,t_70,g_se,x_16


 上面的数组并不是这样子存储在堆里面的 这里是为辣好理解

我的稿子都是看课的笔记,渡一姬成

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值