首页 > 编程语言 > 详细

Web全栈工程师之路(三)——JavaScript篇(十一)——对象(二)

时间:2020-05-27 21:24:35      阅读:44      评论:0      收藏:0      [点我收藏+]

以下是html代码,个人建议放在IDE里运行,边看效果,边学习~

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS初步(十一)——对象(二)</title>
    <script>
        /*  
            属性名和属性值

            属性名:
                - 对象的属性不强制要求遵守标识符的规范,但尽量遵守

            属性值:
                - JS对象的属性值,可以是任意的数据类型,甚至也可以是一个对象
        */

        //属性名
        var obj = new Object();
        obj.var = "李耳"; //这里用了定义用的var,看看是否违规
        console.log(obj.var); //输出看看有没有
        //obj.123 = 789; //这里用的123
        //console.log(obj.123); //输出看看,结果提示Uncaught SyntaxError: Unexpected number

        /*  
            如果要使用特殊的属性名,不能采用.的方式来操作,需要使用另一种方式:
            语法:
                - 对象["属性名"] = 属性值;
            读取时也要采用这种方式

            使用[]这种形式去操作属性会更加的灵活,在[]中可以直接传递一个变量,这样读取的时候实际上就是在读取那个变量的值
        */

        //这里真用的123了...或者你也可以更疯狂一些,自己可以用&*^$&%^$(&^%&%^&*($))试试
        obj["123"] = 789; //这里就没问题了,但还是不建议这样命名
        console.log(obj["123"]); //输出看看,值为789

        var n = "123"; //创建一个字符串变量并赋值
        console.log(obj[n]); //试试效果,发现值为789,同理,以此类推

        //属性值
        var obj2 = new Object();
        obj2.name = "老子";

        //将obj2设置为obj的属性
        obj.obj2 = obj2;
        console.log(obj); //看看效果,会发现obj中出现了一个obj2:{...},{}表示一个对象
        console.log(obj.obj2); //这里输出的就是obj2的属性
        console.log(obj.obj2.name); //输出obj2里的name属性,当然要想效果一样也可以写成console.log(obj2.name)

        /*  
            in运算符
                - 通过该运算符可以检查-一个对象中是否含有指定的属性,如果有则返回true,投有则返回false
                - 语法:
                    "属性名" in 对象
        */

        //检查obj中是否含有test属性
        result = "test" in obj; //这里我们都知道,没有,所以in运算返回false,并赋值给result
        console.log(result); //输出看看,当然也可以简写成console.log("test" in obj);
        
        /*  
            基本数据类型
                String Number Boolean Null Undefined
                
            引用数据类型
                Object
        */

        //基本数据类型
        var a = 123;
        var b = a;
        a++;
        console.log("a = "+a); //此时a的值为124
        console.log("b = "+b); //此时b的值为123
        
        //引用数据类型
        var obj = new Object();
        obj.name = "李耳";

        var obj2 = obj;

        obj.name = "老子"; //修改属性值

        console.log(obj.name); //此时输出老子
        console.log(obj2.name); //此时输出老子

        /* 
            JS中的变量都是保存到栈内存中的,基本数据类型的值直接在栈内存中存储,
            值与值之间是独立存在,修改一个变量不会影响其他的变量

            对象是保存到堆内存中的,每创建一个新的对象, 就会在堆内存中开辟出一个新的空间,
            而变量保存的是对象的内存地址(对象的引用),如果两个变量保存的是同一个对象引用,
            当通过一个变量修改内部的属性时,另一个也会受到影响
        */
    </script>
</head>
<body>
    
</body>
</html>

 

Web全栈工程师之路(三)——JavaScript篇(十一)——对象(二)

原文:https://www.cnblogs.com/lyrebirth-world/p/12976557.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!