JS (3)

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    /*
    js中的数据类型
        - string 字符串
        - Number 数值
        - Boolean 布尔值
        - Null 空值
        - undefined 未定义
            - 以上五种属于基本数据类型
        - object 对象
    */

    /*
    基本数据类型都是单一的值,值和值之间无联系,不能成为一个整体

    对象属于一种复合的数据类型,在对象中保存多个不同数据类型的属性
    对象的分类
        1.内建对象
            - 由ES标准中定义的对象,在任何的ES的实现中都可以使用
            - 如 Math string
        2.宿主对象
            - 由JS的运行环境提供的对象,目前来讲主要有浏览器提供的对象
            - 比如 BOM DOM console.log() document.write()
        3.自定义对象
            - 开发人员自己创建的对象
    */

    //创建对象
    /*
    使用new关键字调用的函数,是构造函数constructor
        构造函数是专门用来创建对象的函数
    */
    var obj = new Object();//只是一个空对象  
    //添加一个name属性
    obj.name = "孙悟空";
    //添加一个gender属性
    obj.gender = "男";
    //添加一个age属性
    obj.age = 18;
    console.log(obj);
    /*
    读取对象中的属性
        语法:对象.属性
    如果读取对象中没有的属性,不会报错而会返回undefined
    */
    console.log(obj.gender);//男

    /*
    修改对象的属性值
         语法:对象.属性名 = 新值
    */
    obj.name = "tom";
    console.log(obj.name);

    /*
    删除对象的属性
        语法:delete 对象.属性
    */
    delete obj.name;
    console.log(obj);//返回值中无name属性

    /*
    像对象中添加属性
    属性名“
        - 对象的属性名不强制要求遵守标识符的规范
            什么乱七八糟的名字都可以使用
        - 但我们使用还是尽量按照标识符规范去做
            - C语言变量名开头必须是字母或下划线,不能是数字
            - 不可以是关键字
            - 区分大小写
            - 不能有空格
    */
    /*
    如果要使用特殊的属性名,如数字等,不能采用.方式来操作
        可以采用另一种方式:
            语法:对象["属性名"]=属性值
    使用[]这种形式去操作属性,更加灵活
        在[]中可以直接传递一个变量,这样变量值就会始终读取那个属性
    */
    obj["123"] = 789;
    obj["456"] = 456;
    //输出时不可以按照.的形式输出,也应按照[]的形式输出
    console.log(obj["123"]);

    var n = "123";
    console.log(obj[n]);
    console.log(obj["123"]);//二者绑定输出都是789
    //此时可以不用修改属性值,直接将n值改变而不改变
    //实际就是套娃,将属性名变成可变化的,而不像.的形式的静态变量
    n = 456;
    console.log(obj[n]);//此时返回属性名456的值,即456

    /*
    属性值
        JS对象的属性值,可以是任意的数据类型
            甚至也可以是一个对象,也就是对象里面套对象,括号里面套括号
    */
    var obj2 = new Object();
    obj2.name = "猪八戒";
    //将obj2设置为obj的属性
    obj.test = obj2;
    console.log(obj);//括号里面套括号,对象里面套对象
    console.log(obj.test);//设置的test的属性
    console.log(obj.test.name);//test的name属性值

    /*
    in 运算符
        - 检查一个对象内有没有该属性
            有则返回true 无则返回false
        - 语法:
            "属性名" in 对象
    */
    console.log("test2" in obj);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值