1.对象的定义
在JavaScript中对象是一组元素的相关属性和方法的集合,所有的事物都是对象,例如:日期,字符串,数字,数组,布尔,函数等。
为什么要使用对象?
人的信息:身高,体重,年龄,
var arr = [180,89,90] 用数组存储信息不合适,就有了对象
万物皆对象
Array:属性:length
方法:push()
String:
属性:length
方法:split()
var obj={
name:"zs"
age: 18,
name: "张三",
sleep: function () {------------------方法
console.log("我爱睡觉~")
},
eat: function () {
console.log("你爱吃~")
}
}
//属性的访问:obj.height
//方法的访问:obj.sleep()
2.对象的增删改查
点语法
obj.属性= 属性值 增(obj不存在改属性)
obj.属性= 属性值 改(obj存在改属性)
delete obj.属性 删除
consloe.log(obj) 查
[]语法
obj["属性"]= 属性值 增(obj不存在改属性)
obj["属性"]= 属性值 改(obj存在改属性)
delete obj["属性"] 删除
consloe.log(obj) 查
obj[key】-----如果是变量就不用加引号
3.点语法和[ ]语法区别
var obj = { "name": "张三", "age": "18" };-------要加上引号
var x = "name";
console.log(obj[x]);//[]语法 支持变量,只要变量的值是对象中的键就ok
console.log(obj.x); // .语法 只能访问对象中存在的键,如果访问对象不存在的键,出来的结果是undefined
4.JSON对象
JSON 是序列化的对象或数组,它是 JS 对象的字符串表示方法,也就是说,JSON本质上是一个字符串。JSON以键值对 的形式存在
JSON对象
var obj={
"name":"张三",
"age":18
}
备注:
1.只有属性,没有方法
2.键名必须加上双引号
3.JSON的 value 不可以为 function/undifined/NaN
4.最后一个值后面不能加逗号
2.前后端传输数据的一种格式,有json字符串和json对象格式
for(var key in obj){
console.log(obj[key])
key: 是对象的键
obj[key]: 是对象的键对应的值
}
1.JSON的属性名必须有双引号,如果值是字符串,也必须是双引号。
2.值不能是方法函数,undefined,NaN
4.js对象和json对象的区别
js普通对象 | JSON对象 |
---|---|
万物皆对象 | |
普通对象键名不用加双引号,可以用单引号包裹 | 键名必须加双引号 |
有属性,方法 | 只有属性 |
可以加 | 最后一个值后面不可以加上逗号 |
JS对象不能传输 | 可以跨平台数据传输、速度快 |
JS对象的值可以是对象、字符串、数字、函数、boolean等等 | 值不能是函数、也不能是undefined或NaN |
3.JSON新增
JSON: 前后端传输数据的一种格式
常见的JSON对象形式:
var obj = { "name": "zs" }
var arr = [{ "productName": "华为" }, { "productName": "小米" }, { "productName": "诺基亚" }]
常见的JSON字符串形式:
var objstr = '{"name":"zs"}'
var arrstr = '[{"productName":"华为"},{"productName":"小米"},{"productName":"诺基亚"}]'
// 普通的对象,可以写方法
var obj = {
name: "zs",
say: function () { }
}
obj.name
obj['name']
------------------------------------------------------------------------------------------------------------------
//JSON对象,没有方法,键名必须用双引号
var obj = {
"name": "zs"
}
obj.name
obj['name']
------------------------------------------------------------------------------------------------------------------
//对象的遍历
for(var key in obj){
console.log(obj[key])
key: 是对象的键
obj[key]: 是对象的键对应的值
}
JSON对象的转换 | |||
---|---|---|---|
JSON.stringify(jsonStr) | 将JS对象转为JSON字符串 | 传输到后端时,需要转为字符串 | |
JSON.parse(jsonObj) | 将JSON字符串转为JS对象 | 后端传过来的也是一个字符串,不能用,转为数组形式或者对象形式 | 为什么要转,遍历数组,渲染到页面 |
JSON 字符串转 JS 对象 ⇒ JSON.parse()
let jsonStr = '{"name":"张三","age":18}'
let jsObj = JSON.parse(jsonStr)
console.log(jsObj)// {name:'张三',age:18}
JS 对象转 JSON 字符串 ⇒ JSON.stringify()
let jsObj = {name:'张三',age:18}
let jsonStr = JSON.stringify(jsObj)// '{"name":"张三","age":18}'
4.对象新增的方法
Object.keys():该方法用于获取对象自身所有的属性,返回一个由属性名组成的数组
var obj = {
id: 1,
pname: "努比亚",
price: 2999,
num: 2000,
};
var arr = Object.keys(obj);
console.log(arr);