<!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>
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号