对象json

对象 obect

  • array
  • json
  • data
  • RegExp
  • null

json 它也可以放任何数据类型,具有代表性.

var json = {
       key:value,
       key:value,
       key:value,
       key:value//最后这个地方一定不可以加逗号
   }

学习对象要学习

  1. 对象要怎么去创建?对象的写法.
  2. 理解对象的作用是干什么的(针对性,可以容纳不同的数据类型)
  3. 怎么去读取对象的属性和方法 以及 对 对象的属性和方法的增删改;
  4. 怎么样去判断对象的具体数据类型 检测内部的属性和方法是否存在.
  5. 对象的解析(for in).
  6. 对象在组件封装 开发过程中应用.

1.对象的写法.(开发过程推荐用引号包住key)


var xq = {
    name : 'xq',
    age : 18,
    say:function(){
        alert("同学们晚上好,好好听老师讲课");
    },
    marry:false,
    tel:130000,
    address:"湖南长沙"
};

var xq1 = {
    "name" : 'xq',
    "age" : 18,
    'say':function(){
        alert("同学们晚上好,好好听老师讲课");
    },
    marry:false,
    tel:130000,
    address:"湖南长沙"
};
var person = {
    name:'xiaoyuer',
    age:16,
    say:function(){
        alert("我叫小鱼儿");
    },
    tel:11111,
    address:"北京",
    "e-mail":"12345@qq.com",
    "valueOf":123//
};

//怎么样访问对象中的属性和方法
//alert(person.name);
//alert(person["name"]);
//alert(person["e-mail"]) //这样只能[]
//alert(person.say())//函数==>变量的话
//var say = "say";
//alert(person[say]);
//修改
//person.name = "goudan";
//// person.marry = true;
// alert(person["marry"]);
//怎么样删除对象(arr,json) 唯一的一个方法 arr = null; json = null;
//怎么样删除对象里边的属性?
delete person.name;
//alert(person.name);//undefined
//怎么样去检测 json里边还有没有属性或者方法  通过 in返回一个布尔值 (字符串 in 对象)
//alert("name" in person);//true
//alert("address" in person);

//in不光检测你自己的 还会检测你从父类继承的 但是无法判断 到底是自己还是父类的
//对象都会继承js内置方法 valueOf toString constructor hasOwnProperty....
//alert("valueOf" in person);true
//alert(person["valueOf"])//123

//检测到底是不是自己的 避开父类 hasOwnProperty()
//alert(person.hasOwnProperty("name"));//true
//alert(person.hasOwnProperty("toString"));//false
//alert(person.hasOwnProperty("name")); //false===>上面delete

只有对象才可以点 (.) 方法和属性

//多个参数需要你返回的时候 要么返回一个数组 要么返回一个对象 数组 排序 反转/ 对象去点
// function fn(){
//     var a = 1;
//     function fn1(){

//     };
//     var json = {
//         a:a
//     };
//     return json;//返回对象
// }
// alert(fn().a);//函数也可以.


window{
    "document":document{
                "getElementById":getElementById,
                "getElementsByClassName":getElementsByClassName,
                "obj":obj{
                    "style":style{
                            "width":width,
                            "height":height
                    }
                    "title":title
                }
    }
}

输出json内容

var person = {
    "name":"狗蛋",
    "marry":false,
    "say":function(){alert("goudan")}
};
alert(person);//object
var arr = [1,23,4];
alert(arr);//1,23,4


//对象字符化     JSON.stringify()  
//JSON 不允许包含函数,JSON.stringify() 会删除 JavaScript 对象的函数.
//可以在执行 JSON.stringify() 函数前将函数转换为字符串来避免以上问题的发生
//person.say = person.say.toString();
//var jsonStr = JSON.stringify(person);
//alert(jsonStr);//输出字符串'{"name":"狗蛋","marry":false,"say":"function(){alert('goudan')}"}'

//字符对象化 JSON.parse()
//var person2 = '{"name":"xq", "age":18}';//里面必须是双引号
//var person3 = "{'name':'xq', 'age':18}";//报错
//alert(person2.name);  //undefined
//var obj = JSON.parse(person2);
//alert(obj.name); //xq
//alert(typeof obj); //object

对象的运用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="Author" content=" ">
    <title>Document</title>
    <style type="text/css">
        *{margin: 0;padding: 0;}
        a{text-decoration: none;}
        ul,li{list-style: none;}
        body{font-size: 14px;font-family: "微软雅黑";}
        table{width: 600px;border-collapse: collapse;margin: 20px auto;}
        table td{border: 1px solid #333;padding: 10px;width:125px;}
    </style>
</head>
<body>
    <table>
        <thead>
            <tr>
                <td>姓名</td>
                <td>年龄</td>
                <td>地址</td>
                <td>操作</td>
            </tr>
        </thead>
        <tbody id="tbody">
        </tbody>
    </table>
    <script type="text/javascript">
        var html = "";
        var tbody = document.getElementById("tbody");

        //需求 是要把人的数据放到表格里边  数组 是不行的
        //对象具有代表性
        var xiaoyuer = {
            name:"xiaoyuer",
            age:18,
            address:"北京"
        };
        // tbody.innerHTML += "<tr>"+
        // "    <td>"+xiaoyuer.name+"</td>"+
        // "    <td>"+xiaoyuer.age+"</td>"+
        // "    <td>"+xiaoyuer.address+"</td>"+
        // "    <td>操作</td>"+
        // "</tr>";

        var Arkin = {
            name:"Arkin",
            age:20,
            address:"杭州"
        };
        // tbody.innerHTML += "<tr>"+
        // "    <td>"+Arkin.name+"</td>"+
        // "    <td>"+Arkin.age+"</td>"+
        // "    <td>"+Arkin.address+"</td>"+
        // "    <td>操作</td>"+
        // "</tr>";

        var xq = {
            name:"xq",
            age:20,
            address:"湖南长沙"
        };
        // tbody.innerHTML += "<tr>"+
        // "    <td>"+xq.name+"</td>"+
        // "    <td>"+xq.age+"</td>"+
        // "    <td>"+xq.address+"</td>"+
        // "    <td>操作</td>"+
        // "</tr>";

        var arr = [];
        arr.push(xq);
        arr.push(Arkin);
        arr.push(xiaoyuer);
        arr.sort(function(a,b){
            var age1 = a.age;
            var age2 = b.age;
            return age1 - age2;
        });
        // 只有对象才能点
        for(var i=0;i<arr.length;i++){
            var data =arr[i];
            tbody.innerHTML += "<tr>"+
            "    <td>"+data.name+"</td>"+
            "    <td>"+data.age+"</td>"+
            "    <td>"+data.address+"</td>"+
            "    <td>操作</td>"+
            "</tr>";
        };
        // 数组才能统一操作,sort reverse
        //'小鱼儿' --- 'xiaoyuer'汉字==>拼音 (插件)
    </script>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值