前端学习day12–js0501:对象及属性的获取及调用,JSON,JSON对象和js对象的相互转换

1.对象

        对象中包含属性和方法

        {} 对象是无序的,以键值对(key:value)的形式展示数据,对象里的每个属性用“,”隔开

 var obj = {
            name: "lll",
            age: 100,
            bf: ["111", "222"],
            isCool: true,
            wifi: {
                logo: "tpLink",
                price: 200,
            },
            play: function() {
                console.log("123");

            }
        }

1.1   对象调用方法:obj.play();

        链式调用:obj.wifi.logo

        为对象添加属性:obj.sex="男",

                   添加方法:obj.sayHi=function(){ console.log("Hi");  }

1.2获取对象的属性值

                a.对象名.属性名     var name=obj.name;

                b.对象名[key]        好处:key是可以变化的

                               var key="name";

                                var name=obj[key];

1.3获取所有的key和属性值    Object.keys();

 var keys = Object.keys(obj);//静态方法  以后看到大驼峰开头的调用的方法 
        console.log(typeof(keys)); //object
        for (var i = 0; i < keys.length; i++) {
            console.log(keys[i]); //得到的为属性名
            var k = keys[i];
            console.log(obj[k]); //得到属性值
        }

1.4获取对象中的所有值     Object.values();

var value = Object.values(obj);
        for (var i = 0; i < value.length; i++) {
            console.log(value[i]);

        }

2.for in——遍历对象

        forof 用来遍历array string set map   不要遍历对象会报错

forin的变量为对象的 属性key   属性的取值obj[key]

  for (const key in obj) {
            console.log(key);//name age bf isCool wifi play
            console.log(obj[key]);//得到属性值
        } 

3.对象的简单的链式调用

 var goods = [
            {
                name: "巧克力",
                production: "俄罗斯",
                price: 100,
                madeIn: {
                    water: 1,
                    sugar: ["麦芽糖", "葡萄糖", "蔗糖"]
                }
            },
            {
                name: "白巧克力",
                production: "白俄罗斯",
                price: 200,
                madeIn: {
                    water: 2,
                    sugar: ["麦芽糖", "葡萄糖", "蔗糖"]
                }
            }
        ]

        // 要获取第一个商品的蔗糖
        //对象
        let goodObj = goods[0];
        //对象
        let chengfenObj = goodObj.madeIn;
        // 数组
        let tangs = chengfenObj.sugar;
        // 取值
        let tang = tangs[2];

        console.log("tang : === ", tang);

        // 简单的链式调用的方式
        let tang2 = goods[0].madeIn.sugar[2];
        console.log("tang 2: === ", tang2);

4.JSON

        javascript object notation js对象简谱

       轻量级的数据格式 一般服务端返回顶数据格式就是json (常用的)

       xml 可扩展标记语言 也是服务端返回的数据格式

       JSON的 key 必须为  字符串  不包含方法

JSON对象如下

 let jsonObj = {
            "name": "三",
            "age": 20,
            "gfs": [{
                "name": "lili",
                "age": 18,
                "height": 170
            }]
        }

5.把js对象转换为JSON对象

                stringify——字符串化

     let jsonstr = JSON.stringify(jsobj);

6.把JSON对象转化为js对象(可以更容易调用对象的属性获取属性值)

                parse——解析

      let jsobj = JSON.parse(jsonobj);

您好,我可以为您提供一些创建购物网站的JavaScript代码。以下是一些示例: 表单验证: ```javascript function validateForm() { var name = document.forms["myForm"]["fname"].value; var email = document.forms["myForm"]["email"].value; if (name == "") { alert("Please enter your name"); return false; } if (email == "") { alert("Please enter your email"); return false; } } ``` 定时器: ```javascript var timeLeft = 60; var timer = setInterval(function() { if (timeLeft <= 0) { clearInterval(timer); document.getElementById("timer").innerHTML = "Time's up!"; } else { document.getElementById("timer").innerHTML = timeLeft + " seconds remaining"; } timeLeft -= 1; }, 1000); ``` JSON数据调用: ```javascript var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { var myObj = JSON.parse(this.responseText); document.getElementById("demo").innerHTML = myObj.name; } }; xmlhttp.open("GET", "jsonfile.json", true); xmlhttp.send(); ``` 正则表达式: ```javascript var str = "Visit W3Schools!"; var n = str.search(/w3schools/i); ``` 数学: ```javascript var x = Math.PI; var y = Math.sqrt(4); ``` 数组或时间日期对象: ```javascript var fruits = ["Banana", "Orange", "Apple", "Mango"]; var d = new Date(); var day = d.getDay(); ``` 联动效果: ```javascript var cars = { "Audi": ["A3", "A4", "A5"], "BMW": ["3 Series", "5 Series", "7 Series"], "Mercedes-Benz": ["C-Class", "E-Class", "S-Class"] }; function updateModels() { var brand = document.getElementById("brand").value; var models = cars[brand]; var html = ""; for (var i = 0; i < models.length; i++) { html += "<option value='" + models[i] + "'>" + models[i] + "</option>"; } document.getElementById("model").innerHTML = html; } ``` 动态加载数据: ```javascript function loadXmlDoc() { var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("demo").innerHTML = this.responseText; } }; xmlhttp.open("GET", "ajax_info.txt", true); xmlhttp.send(); } ``` 希望这些代码对您有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值