JSON和对象操作
json的语法:
var json = {
"name" : "cromwell",
"age" : 50
};
“:“前面是属性名,后面是数据格式(可以是任何格式),用json.name即可输出该属性的值。
注意:定义的属性名称在严格模式下必须使用””;
json[]调用数据的时候和对象的属性写法相同即:
json["name"]; //获取json属性name的值
json.name = "新值"; //可以用来改写json的name属性的值
用json可以包括数组,数组也可以包括json,如:
var arr=[{"name":"abc","age":20},{"name":"bcd","age":30}];
var json = {"a":[1,2,3],"b":[4,5,6,7]};
这时我们如果想拿到name的值"abc"就要写成arr[0].name了
for in循环:
json没有长度,因此无法使用for循环遍历json。for循环里使用数字i作为循环的变量对应下标,而for in循环则使用attr就是属性名称来对应json的属性名:
for(var attr in json){
alert(attr+":"+json[attr])
};
//window和document就是两个带有很多属性的对象,我们可以输出一下看看
注意:数组除了用for可以遍历,用for in也是可以的,这里属性名称就是arr的下标;而上面的两种嵌套式的json和数组需要for in和for循环配合来遍历,我们试着把他们遍历一下
将字符串数据转换成js数据:
eval方法:
把字符串解析成JS代码并运行,之前经常用将后台接口获得的字符串数据转换成json或者数组,但是由于该方法不安全而耗性能(解析一次运行一次),因此现在已经不推荐使用
JSON方法:
stringify是将对象转成字符串,但是json必须是严格模式,即key必须是字符串且必须是双引号;parse是将字符串转成对象
对象操作:
delete操作符,
语法:delete 对象名.属性名。
这是删除属性的唯一方法。
把属性设置为undefined或者null不能真正的删除属性,它只是移除了属性和值的关联
hasOwnProperty()函数,
语法:object.hasOwnProperty(proName)。
用途:判断某个属性是否属于某个对象
object为必需参数,是对象的实例;proName必需参数。一个属性名称的字符串值
如果object对象中存在指定名称的属性,则返回true,反之则返回false
hasOwnProperty 是 JavaScript 中唯一一个处理属性但是不查找原型的函数
上一篇: UVA - 1584 Circular Sequence
下一篇: TypeScript 基本类型