美文网首页
11-第十一章 对象 for in

11-第十一章 对象 for in

作者: 晚溪呀 | 来源:发表于2019-01-26 23:33 被阅读0次

数组的应用:存储有序数据
对象的应用:存储无序数据

json格式的对象

{
    健名:值    //  一组属性    每组属性之间用,隔开
    属性名建议写上 双引号
    最后一组属性 的 逗号问题,使用ES5 语法 建议不写,使用ES6 语法建议写上
}

json 对象的简写

1、当一个属性的值等于一个变量,并且这个变量的值等于属性的时候,可以写成 只写一个就好
            let name = "楚鑫";
            let obj = {
                name
            };
            console.log(obj.name)
2、当一个属性值是一个函数的时候 : 可以省略不写,function 也可以不写
            let obj = {
                "fn" () {},
            }
            console.log(obj.fn);
        }

python:不叫对象 叫字典

3、对象的属性直接写不用引号引起来的时候,类型是 string
4、解构赋值

解构赋值语法是一个 Javascript 表达式,这使得可以将值从数组或属性从对象提取到不同的变量中

对象的解构赋值,当我们只需要某一个对象的方法时,我们可以使用解构赋值,这时候就不需要把整个模块都加载进来,减少负荷

        let {PI} = Math;
        console.log(PI);    //  3.141592653589793
5、展开运算符 ...

当 ... 出现在函数的时候,在调用这个函数的时候,传进去的数据是散的, ... 把散的数据用一个数组包起来,再通过...后面的词,当成这个数组的名字,收集起来
当 ... 不是出现在函数的时候,是把数据一个一个展开

ES5: for-in 迭代数组,可以迭代对象 返回变量的序号 迭代对象首选 性能较差
ES6: for-of 迭代数组,不能迭代对象 返回变量的值 迭代数组、类数组首选 性能较好

6、鸭子类型

JSON 格式的对象字符串表示法
`{"a": 1, "b": 2}`
{"a": "1", "b": "2"}

一、JSON

1 、创建对象(JSON)

对象是 Javascript 的基本数据结构,对象是引用类型
创建对象的三种方式 对象直接量,new Oject(), Object.create( { } )
[ ES5 ], create 创建需要一个对象参数

//  直接量
var  obj = {}

//  new
var  obj = new Object()

//  ES5
var  obj = Object.create()

对象都是一个 key (键): value ( 值 ) 一一 对应
age 为对象的 key (键),或 objage 属性
20agevalue ( 值 )

严格是对象为 JSON
//  对象
var obj = {  age: 20,name: '小黑', }
//  JSON
var obj = {  'age' : 20,'name': '小黑', }
2 、访问 JSON 的值

obj.attribute
obj[attribute]

var obj = {
    age: 20,
    name: '小黑',
    sex: '男'
}
alert( obj.age )   //20
//或
xalert( obj[age] )   //20
3 、修改 JSON 的属性值
var obj = { name: '小黑'};
obj.name  = '二狗';
//或
obj[name ] = '二狗';
4 、删除JSON属性

delete 可以删除对象属性

var obj = {};
obj.name = 'hello';
delete obj.name 
//或
delete obj[name] 
5 、JSON数字属性
var obj = {
    age: 20,
    name: '小黑',
    sex: '男'
};
obj[0] = 'hello';
obj[1] = 'AAA';
6、in 判断对象是否存在某个属性
var   obj = { 
    hello:123
};
alert( 'hello' in obj );  //true
7、json 格式对象的序列化和反序列化

JSON.stringgify() 对象转字符串 属性值为函数的时候,可能会过滤掉这个函数,因为后台程序函数语法可能都不一样

JSON.parse() 字符串转对象

JSON.parse 里面出现单引号就转失败

                let obj = {
                    "a": '1',
                    "b": function () {}
                }

                let a = JSON.stringify(obj);
                console.log(a); //  {"a":"1"}   string

                let b = JSON.parse(a);
                console.log(b); //  {a: "1"}    object
JSON.stringify() 数组转字符串

数组转字符串值有函数会该值转化为 null

console.log( JSON.stringify( [1, 2, function fn() {} ] ) ); //  [1,2,null]
8、Object.is(value1, value2) 判断两个值是否相等

两个值都是 undefined
两个值都是 null
两个值都是 true 或者都是 false
两个值是由相同个数的字符按照相同的顺序组成的字符串
两个值指向同一个对象
两个值都是数字并且
都是正零 +0
都是负零 -0
两个值都是 undefined
都是 NaN
都是除零和 NaN 外的其它同一个数字

二 、(for in) (for of) 遍历 json

1、for in 遍历 JSON
var person = {
    age: 20,
    name: '小黑',
    sex: '男'
}
for( var attr in person){  //attr 为属性,attr不是必须的,可以为任意变量名
    console.log( attr );  //属性名: age,name,sex
    console.log( person[attr] )//对应的属性值:20 小黑 男
}
2、for in 也可以遍历数组 (性能较差)
var  arr = [8,2,4,6];
for ( var index in arr){
    console.log( index );               //0 1 2 3
    console.log( arr[index] );       // 8 2 4 6
}
3、for of 也可以遍历数组 ,不能遍历对象 (性能比 for in 好)
var  arr = [8,2,4,6];
for ( var index of arr){
    console.log( index );         // 8 2 4 6            
}

!!!! for 循环不能遍历 JSON

相关文章

网友评论

      本文标题:11-第十一章 对象 for in

      本文链接:https://www.haomeiwen.com/subject/gzxccqtx.html