鱼C论坛

 找回密码
 立即注册
查看: 2540|回复: 0

[学习笔记] JS.004:值类型与引用类型(易错篇)

[复制链接]
发表于 2020-5-4 00:51:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 小脑斧 于 2020-5-4 20:29 编辑
知识点总结

    原始数据类型:number,string,boolean,undefined, null,object
    基本类型(简单类型),值类型:       number,string,boolean
    复杂类型(引用类型):        object
    空类型:       undefined,null


    值类型的值在 中存储
    引用类型的值存储?两部分:对象在上存储,地址在上存储

    var num=10;//值类型,值在栈上
    var obj={};//复杂类型,对象在堆,地址(引用)在栈

    值类型之间传递,传递的是值
    引用类型之间传递,传递的是地址(引用)

    值类型作为函数的参数,传递的是(copy)
    引用类型作为函数的参数,传递的是地址(change)
   图解1:
    微信图片_20200503224251.png
    理解:&obj2 = &obj;(用c语言的&表示了取地址
                                                                 obj 2.name="小红";
                                                                 obj.name="小红";
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

来代码体会一下:
<font size="4"><font size="3"><font size="2">var num1 = 55;
 var num2 = 66;
 function f1(num, num1) {
 num = 100;
 num1 = 100;
 num2 = 100;
 console.log(num);//100
 console.log(num1);//100
 console.log(num2);//100
 }

 f1(num1, num2);
console.log(num1);//55
console.log(num2);//<font color="red">100</font>
</font>console.log(num);// <font color="red">报错</font>
why?

分析:如图
微信图片_20200504003116.png

再来段代码分析

<font size="3">function Person(name,age,salary) {
 this.name = name;
 this.age = age;
 this.salary = salary;
 }
 function f1(person) {
 person.name = "ls";
 person = new Person("aa",18,10);
 }

 var p = new Person("zs",18,1000);//开辟新的空间
 console.log(p.name);//ls
 f1(p);
 console.log(p.name);//ls</font>
图解如下:
引用类型传递.png




如有错误,欢迎敲打
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 19:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表