JAON对象
只能在一行,不能多行
模板字符串可以多行
let ass='[{"name":"ss","age":"3"},{"name":"aa","age":"1"},{"name":"qq","age":"4"},{"name":"zz","age":"3"},{"name":"xx","age":"5"},{"name":"cc","age":"7"}]'
JSON.parse
将JSON字符串转换成JSON对象(JSON反序列化)
let aa=JSON.parse(ass);
console.log(aa[2].age);//4
JSON.stringify
将JSON对象转换成JSON字符串(JSON序列化)
let arr=[
{"name":"ss","age":"3"},
{"name":"aa","age":"1"},
{"name":"qq","age":"4"},
{"name":"zz","age":"3"},
{"name":"xx","age":"5"},
{"name":"cc","age":"7"}
]
let bb=JSON.stringify(arr);
console.log(bb);//[{"name":"ss","age":"3"},{"name":"aa","age":"1"},{"name":"qq","age":"4"},{"name":"zz","age":"3"},{"name":"xx","age":"5"},{"name":"cc","age":"7"}]
String
trim()
会删除一个字符串两端的空白字符。并不影响原字符串本身,它返回的是一个新的字符串。
let str22=' fff ';
console.log("+"+str22+"+");//+ fff +
console.log("+"+str22.trim()+"+")//+fff+
Date
now()
//1970.7.1到现在,1秒=1000毫秒这个概率算
console.log(Date.now());//1500799156134
//toJSON()格林时间(德国) 与我们的时间正好相反
console.log(new Date().toJSON())//2017-07-23T08:42:13.050Z
console.log(new Date().toJSON().slice(0,10))//2017-07-23
Numbe
toFixed(1)
小数后取位数,数字代表取到第几位,四舍五入返回小数
let a=new Number(1.234);
console.log(a.toFixed(1));//1.2
let v=new Number(4.645372);
console.log(v.toFixed(2));//4.56
console.log(Math.round(13.89));//14 四舍五入返回整数
toPrecision
以指定的精度返回该数值对象的字符串表示。 precision 是 1 ~ 21 之间
let d=100000000000000000000;
console.log(d.toPrecision(7));1.000000e+20
console.log(d.toPrecision(3));1.00e+20
Array对象
迭代方法
forEach 遍历,循环
let arr=[1,2,3,4,5];
arr.forEach(function(value, index){
console.log(value);//1,2,3,4,5
console.log(index);//0,1,2,3,4
});
map 映射
let arr1=arr.map(function(value){
//return value+"abc";
return value*2+1;
});
console.log(arr1);// ["1abc", "2abc", "3abc", "4abc", "5abc"]
console.log(arr1);//[3, 5, 7, 9, 11]
filter “过滤”、“筛选”
let arr2=arr.filter(function(value){
return value>2;
});
console.log(arr2);//[3, 4, 5]
some 指是否“某些项”合乎条件,只要有符合的返回true
let arr3=arr.some(function(value){
return value>2;
});
console.log(arr3);//true
every "每一个",必须是每一项都符合
let arr4=arr.every(function(value){
return value>3;
});
console.log(arr4);//false
索引方法
indexOf
返回整数索引值,如果没有匹配(严格匹配),返回-1. 匹配到返回 1。
var aa = [2, 5, 7, 3, 5];
console.log(aa.indexOf(5, "x")); // 1 ("x"被忽略)
console.log(aa.indexOf(5, "3")); // 4 (从3号位开始搜索)
console.log(aa.indexOf(4)); // -1 (未找到)
console.log(aa.indexOf("5")); // -1 (未找到,因为5 !== "5")
lastIndexOf 从字符串的末尾开始查找,
console.log(aa.lastIndexOf(5)); // 4
//console.log(aa.lastIndexOf(5, 3)); // 1 (从后往前,索引值小于3的开始搜索)
//console.log(aa.lastIndexOf(4)); // -1 (未找到)
缩小方法
reduce 迭代
let ar3=[1,2,3,4,5];
let gh=ar3.reduce(function(last,now){
return last*now;
},1)
console.log(gh);//120
reduceRight
相当于reduce,只是reduceRight从右边开始计算
let ar33=[1,2,3,4,5];
let gh22=ar33.reduceRight(function(last,now){
return last*now;
},1)
console.log(gh22);//120
判断方法
Array.isArray(obj)
判断一个变量是否为数组,是返回true,不是返回false
let ss=22;
console.log(Array.isArray(ss));//false
console.log(Array.isArray(ar33));//true
ps:不兼容IE8.
Object
Object.create用于创建一个对象
create(用来指定原型proto,)
let obj={
x:1,
y:2
}
let obj2=Object.create(obj,{z:{value:3}});
console.log(obj2);//Object {z: 3}
console.log(obj2.x);//1
//es6
let obj3={
__proto__:obj,
z:3
};
console.log(obj3);//Object {z: 3}
Object.defineProperty()用来给对象定义属性的 只能指定一个
let objj={
x:1,
y:2
};
objj.k=4;
Object.defineProperty(objj,"j",{
value:5,
writable:false,//可写
enumerable:false,//可便利
configurable: true//可配置
});
objj.j=50;
objj.k=50;
console.log(objj);//Object {x: 1, y: 2, k: 50, j: 5}
Object.defineProperties() 给对象一次性指定多个属性
let objj={
x:1,
y:2
};
Object.defineProperties(objj,{
"m":{
value:"mm",
},
"u":{
value:"ll",
}
})
console.log(objj);//Object {x: 1, y: 2, m: "mm", u: "ll"}
getOwnPropertyDescriptor获取对象具体属性的描述
let sdf=Object.getOwnPropertyDescriptor(objj,'x');
console.log(sdf);//Object {value: 1, writable: true, enumerable: true, configurable: true}
Object.keys() 和getOwnPropertyNames方法类似,但是获取所有的可枚举的属性,返回一个数组
console.log(Object.keys(obj));// ["x", "y"]
Object.getOwnPropertyNames()获取所有的属性名,
console.log(Object.getOwnPropertyNames(obj));
Object.preventExtensions() 可以让一个对象不可扩展,该对象无法再添加新的属性,但是可以删除现有属性
/*let aa={
x:1,
y:2
};
Object.preventExtensions(aa);
aa.fn=function(){
}
console.log(aa);//Object {x: 1, y: 2}*/
Object.seal() 来对一个对象密封,该方法会阻止对象扩展,并将该对象的所有属性设置为不可配置
let aa={
x:1,
y:2
};
Object.seal(aa);
aa.fn=function(){
}
console.log(aa);//Object {x: 1, y: 4}
Object.freeze() 来对一个对象进行冻结,实现常量的需求,该方法会阻止对象扩展,并冻结对象,将其所有属性设置为只读和不可配置
let aa={
x:1,
y:2
};
Object.freeze(aa);
aa.y=4;
console.log(aa);//Object {x: 1, y: 2}
Object.isExtensible()可扩展true 不可扩展false
console.log(Object.isExtensible(aa));//false
Object.isSealed() 是否密封(不可配置),没有密封false,密封true
console.log(Object.isSealed(aa));//true
Object.isFrozen()是否冻结 没有冻结false,冻结true
console.log(Object.isFrozen(aa));//true
ps 以上方法均不兼容ie8
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。