JavaScript对象和json

时间:2019-02-16
本文章向大家介绍JavaScript对象和json,主要包括JavaScript对象和json使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

一、对象

  1. 在js中,对象是一种数据类型,不同于其他语言中的对象,js对象可以直接写出来,对象的写法包括:{}字面量、new Object()Object.create({})。格式是{键:值},多个键值对用逗号分隔,键表示属性名,值表示属性值。
  2. 键可以加引号也可以不加引号,可以写字符串和数值类型,其他变量类型不能书写。值必须存储数据,可以是任意数据类型,和数组类似。
  3. 在es6中,如果键名和变量名一致,那么可以直接写变量进去,变量名表示键的值,变量值表示值。
  4. 查找一个属性的值:使用中括号语法或者.语法获取。对于类数组,其实是个对象,有length属性和熟知的键。
  5. 修改属性的值:obj.name = "张三";
  6. 添加值:obj.age = 18;直接添加。
  7. 删除键值对:delete obj.name;
  8. 判断对象中是否存在某个属性,使用in关键字:"name" in obj存在为true,不存在为false。
var stu = {
    name:"张三",
    0:"000",
    1:"111",
    2:"222",
    length:3
};
stu.name = "李四";
stu.xx = NaN;
stu.height = 180;
console.log(stu[0]); //000
console.log(stu.0); //报错
if("xx" in stu){
    alert("存在");
}else{
    alert("不存在");
}

二、遍历对象

  1. 数组自带length属性,但是类数组本质是一个对象,没有默认的length属性。
  2. 对象的遍历使用for…in循环,但是for in循环性能太低了,因为for in循环不仅遍历对象的每一个属性,而且还遍历了对象的原型链。
var oArr = {
    0:'你好',
    1:'他好',
    2:'我也好',
    lenght:3
}
console.log(oArr);
for(var i = 0; i<oArr.length;i++){
    console.log(oArr[i]);
}
var obj = {
    name:"张三",
    age:18,
    length:2,
}
for(var x in obj){
    console.log(x);
}

三、json

  1. json:JavaScript Object Notation “js 对象 标记”,是通用的数据传输格式,本质上是一个字符串。
  2. 长得像对象,但是写法不一样,键和值必须用双引号包裹。
  3. 序列化:JSON.stringify只有对象、数组、字符串、数值、布尔值、null可以序列化为json。
  4. 反序列化:JSON.parse把json转换为js对象。
  5. JSON.parse/stringify不兼容IE7及以下,解决兼容性问题:使用json2.js。
var obj = {
    name:"张三",
    age:[1,2,3],
    y:null,
    o:{name:"李四"},
    sing:function(){
        alert("song");
    }
}
console.log(JSON.stringify(obj));

var json = '{"name":"lisi"}';
var json2 = '["name","age","王五"]';
var json3 = "你好";
var json4 = "123";
console.log(JSON.parse(json));