JSON 对象
-
JSON.stringify(obj/arr) 我们通常说的“json字符串”,只有两种:json对象、json数组。
js对象(数组)转换为json对象(数组)
-
JSON.parse(json)
json对象(数组)转换为js对象(数组)
var obj = {
name : 'Tony',
age : 22
};
obj = JSON.stringify(obj);
console.log(obj); // {"name":"Tony","age":22}
console.log( typeof obj); // string
obj = JSON.parse(obj);
console.log(obj); // {name: "Tony", age: 22}
Object的扩展
ES5给Object扩展了一些静态方法,常用的2个:
Object.create(prototype, [descriptors])
作用: 以指定对象为原型,创建新的对象。同时,第二个参数可以为为新的对象添加新的属性,并对此属性进行描述。
value : 指定值
writable : 标识当前属性值是否是可修改的, 默认为false
configurable: 标识当前属性是否可以被删除 默认为false
enumerable: 标识当前属性是否能用for in 枚举 默认为false
Object.defineProperties(object, descriptors)
作用:为指定对象定义扩展多个属性。
get :用来获取当前属性值得回调函数
set :修改当前属性值得触发的回调函数,并且实参即为修改后的值
存取器属性:setter,getter一个用来存值,一个用来取值
obj对象本身就自带了两个方法
get 属性名(){} 用来得到当前属性值的回调函数
set 属性名(){} 用来监视当前属性值变化的回调函数
数组的扩展
\1. Array.prototype.indexOf(value) : 得到值在数组中的第一个下标
\2. Array.prototype.lastIndexOf(value) : 得到值在数组中的最后一个下标
\3. Array.prototype.forEach(function(item, index){}) : 遍历数组
\4. Array.prototype.map(function(item, index){}) : 遍历数组返回一个新的数组,返回加工之后的值
\5. Array.prototype.filter(function(item, index){}) : 遍历过滤出一个新的子数组, 返回条件为true的值
/*
需求:
1. 输出第一个6的下标
2. 输出最后一个6的下标
3. 输出所有元素的值和下标
4. 根据arr产生一个新数组,要求每个元素都比原来大10
5. 根据arr产生一个新数组, 返回的每个元素要大于4
*/
var arr = [1, 4, 6, 2, 5, 6];
console.log(arr.indexOf(6));//2
console.log(arr.lastIndexOf(6));//5
arr.forEach(function (item, index) {
console.log(item, index);
});
//Array.prototype.map(function(item, index){}) : 遍历数组返回一个新的数组,返回加工之后的值
var arr1 = arr.map(function (item, index) {
return item + 10
});
console.log(arr1);//[11, 14, 16, 12, 15, 16]
//Array.prototype.filter(function(item, index){}) : 遍历过滤出一个新的子数组, 返回条件为true的值
var arr2 = arr.filter(function (item, index) {
return item > 4
});
console.log(arr2);//[6, 5, 6]
网友评论