鱼C论坛

 找回密码
 立即注册
查看: 2068|回复: 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="小红";
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

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

  11. f1(num1, num2);
  12. console.log(num1);//55
  13. console.log(num2);//<font color="red">100</font>
  14. </font>console.log(num);// <font color="red">报错</font>
复制代码

why?

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

再来段代码分析

  1. <font size="3">function Person(name,age,salary) {
  2. this.name = name;
  3. this.age = age;
  4. this.salary = salary;
  5. }
  6. function f1(person) {
  7. person.name = "ls";
  8. person = new Person("aa",18,10);
  9. }

  10. var p = new Person("zs",18,1000);//开辟新的空间
  11. console.log(p.name);//ls
  12. f1(p);
  13. console.log(p.name);//ls</font>
复制代码

图解如下:
引用类型传递.png




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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-2 02:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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