对象、对象的增删改查、遍历、不同类型的存储(栈、堆)以及堆的复制

本文介绍了JavaScript中的对象创建、属性命名规则以及增删改查操作。通过示例展示了如何使用字面量和构造函数创建对象,并讨论了对象在内存中的存储方式,包括栈和堆的概念。此外,还详细解释了对象复制的方法以及其对内存的影响。
摘要由CSDN通过智能技术生成

对象(属于复杂数据类型)

对象里起名字要符合规则,
不符合需要添加引号括起来。
请添加图片描述

实例
<script>
    //字面量的方式创建一个对象
    var obj = {
        姓名:"wwh",
        年龄:100,
        住址:"邢台"
    }
    console.log(obj);


    //内置构造函数
    var obj2 = new Object()
    console.log(obj2);

    obj2.name = "xiaoming"
    obj2.nianling = 18
    console.log(obj2);
</script>

增删改查(2种)

<script>
    //增
    var boj = {}
    console.log(boj);
        boj.name = "wwh"
        boj.age = 100
        boj.location = "xingtai"
        console.log(boj);

    // 查

    document.write("姓名"+boj.name)

    //改
    boj.age = 18
    console.log(boj);
    
    // 删
    delete boj.name
    console.log(boj);

    // 2-增 [中括号要添加引号单引双引都可以]
    // ([]中括号是用来访问数组的)
    var boj2 = {}
    boj2["name"] = "tiechui"
    console.log(boj2);

    //查
    console.log(boj2["name"]);

    //改
    boj2["name"] = "新的名字"
    console.log(boj2);

    //删
    delete boj2["name"]
    console.log(boj2);


    //区别 对象下起名不规范的
    var myobj = {

        "a+b":"111111"
    }
    // console.log(myobj.a+b);
    console.log(myobj["a+b"]);
</script>

遍历(用for来写)

 <script>
    var obj = {
        name:"wwh",
        age:100,
        location:"xingtai",
        a:1,
        b:2

    }
    for(var i in obj){
        //i 随意定义 表示的key
        // console.log(i);
        // console.log(obj[i]);

        document.write(i+":"+obj[i])
        document.write("<br>")
    }
</script>

不同类型的存储

请添加图片描述

复杂函数的栈与堆关系

普通数据类型会放在栈里面,复杂类型定义的名字(相当的与钥匙)在这里
复杂类型的数据和方法、函数内容都存到了堆里面

 //比如复杂类型复制一份了话
/*var obj = {
        name:"wwh",
        age:18
    }	 为房间	*/
   var lzh = obj   配了一把新的钥匙
   lzh.name = "lzh"
   console.log(lzh,obj);
只是相当于给一间房间配了2把钥匙而已。
修改哪个数据,房间都会改变

复制对象(把堆的内容复制一份)

<script>
    //复制复杂函数
    var ww = {
        name:"wwh",
        age:18
    }  //在堆里面的对象内容
     var ll = {}
       for(var i in ww){
        ll[i]=ww[i]  /用遍历来循环复制一份
    }
     ll.name = "tiechui"  //修改ll的name名字
    console.log(ww,ll);  //打印ww 不变,ll成功复制并改名。
     </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值