<!DOCTYPE html> <meta charset="UTF-8"> <html> <head><title></tile></head> <body> <script> //一,js 中的原型与继承 prototype, //申请一个对象obj1;向obj1 中添加一些方法和属性 var obj1=new Object(); obj1.name='Alice'; obj1.getName=function(){ return this.name; }
//控制台输出obj1中的方法和属性
console.log(obj1.name);//输出Alice console.log(obj1.getName);//输出Alice //申请obj2=new Object();查看obj2 能不能访问obj1 中的属性和方法; var obj2=new Object(); console.log(obj2.name);//不能访问;这个时候可以用prototype obj2.name="Jck"; obj2.getName=function(){ return this.name; } console.log(obj2.name);//输出 Jack; console.log(obj2.getName);//输出 Jack;
//二 将js 数组 转换成 json 字符串:JSON.stringify();
//特点:1,字符串必须使用刷双引号
// 2,除字符串外支持数值布尔
// 3, 自动将undefined 转换成null
// 4 支持空元素
// 5,与js 数组一样支持从零开始的索引值来访问
//创建一个js 数组
var str=['php',1,true,null,undefined,''];
//将js数组 转换成json字符串
var brandjson=JSON.stringfy(str)
//三 :将js对象装换成json 字符串 JSON.stringify();
//特点:1 索引属性名必须使用双引号
// 2,如果属性值为字符串必须使用双引号进行包装
// 3,不支持undefined 类型;
// 4,不支持属性为函数的方法和成员;
// 5,键名允许为空;
//创建一个js 对象
var stu={ name:'Jack', age:18, salary:none, '':"PHP中文网", birthday:nudefined, getName:function(){ return this.name } }
//将这个Js对象装换成json字符串
var stujson=JSON.stringify(stu);
//在控制台输出,查看json字符串
console.log(stu);
console.log(stujson);
//四,对象与数组的结合;
//创建一个复杂类型的数组
var stz=[{name:'Jack',sex:'male', course:[{ name:'php', comment:'服务器脚本语言', grade:90 },{name:'javacript',comment:'客户端脚本语言',grade:80}] },{ name:'zhu',sex:'woman',course:[{ name:'html', comment:'超文本标记语言', grade:88 },{name:'css',comment:'样式层叠',grade:88 }] }]
//将复杂类型的数组转换成json字符串
var stzjson=JSON.stringify(stz);
console.log(stzjson)
//五,js 转换惨呼介绍;1,JSON.string()里面可以添加参数,第二个参数是数组/函数,数组(允许转换成对象属性)
//函数(将、属性的键值依次传入进行处理),
//第三个参数是数字表示json缩进的空格数量/第三个参数还支持自定义缩进字符
var scd={
name:'Jack',
sex:'male',
salary:3000,
crime:null,
ismarried:true,
sexual:undefined,
myChild:['大宝','二宝']
}
//第二个参数是数字允许转换成对象属性
console.log(JSON.stringify(scd,['name','crime']));
//第二个参数是函数;可以键属性的键值依次传入进行处理;属性前面自动加上了换行符
var resl = JSON.stringify(scd,function(key,value){ switch(key){ case 'name': return value+'zhu' break case 'sex': return value+'我也不确定' break case 'salary': return value+5000 break case 'ismarried': return value+'其实我是骗你的' break case 'sexual': return value+'其实我也不确定' break default: return value } })
console.log(JSON.stringify(resl))
//第三个参数表示缩进的空格数量,最大值是10;
console.log(JSON.stringify(resl,null,8))
//六 toJSON方法;
var stojs={ name:'Apple', age:33, salary:3000, sexual:undefined, toJSON:function(){ return '我的名字是'+this.name+'我的年龄是'+this.age+'我的工资是'+this.salary } }
console.log(JSON.stringify(stojs))//输出toJSON中的方法】
//七 ,转换数据介绍:调用去全局对象JSON的一个方法 JSON.parse()
var scd2={ name:'Jack', ismarried:null, age:33, sexual:undefined, crimal:null } var jsontext=JSON.stringify(scd2); var objext1=JSON.parse(jsontext); console.log(typeof objext1);//输出object1类型 var object2=JSON.parse(jsontext,function(key,value){ if(key=='ismarried'){ return '婚姻状态保密' }else{ return value } }) console.log(object2) </script> </body> </html>