Object类型
创建Object 实例的属性有两种方式。
1.使用new 操作符后跟Object 构造函数。
var person = new Object();
person.name = "Nicholas";
person.age = 29;
2.使用对象字面量表示。
var person = {
name:"Nicholas",
age: 29
}
另外还有一种创建对象的方式是使用Object.create()方法,它是一个静态方法。
var obj = Object.create({x:1,y:2})
Object构造函数创建一个对象包装器,对象是一种特殊的数据,对象用于属性和方法。
访问属性的方法
1.对象名.属性名 对象名.方法名();
2.对象名["属性名"] 对象名["方法"]()
var obj = {
name:"柠檬先生",
age:20,
say:function(){
console.log("名字:"+ this.name+"年龄:"+this.age)
}
}
console.log(obj.name);
console.log(obj["name"]);
obj.say();
obj["say"]();
每个Object类型的实例共有的属性和方法:
constructor 保存着用于创建当前对象的函数。
function Tree(name){
this.name = name
}
var theTree = new Tree("Redwood");
console.log("theTree.constructor is"+ theTree.constructor);
输出: theTree.constructor is function Tree (name){this.name = name}
hasOwnProperty: 用于检测给定的属性在当前对象的实例中是否存在。
o= new object();
o.propOne = null;
o.hasOwnProperty('propOne');// 返回true
o.propTwo = undefined;
o.hasOwnProperty('propTwo');// 返回true
isProtoypeOf:用于检查传入的对象是否是当前对象的原型。
function Foo(){}
function Bar(){}
function Baz(){}
Bar.prototype = Object.create(Foo.prototype);
Bar.prototype = Object.create(Bar.prototype);
var baz = new Baz();
console.log(Baz.prototype.isPrototypeOf(baz)); // true
console.log(Bar.prototype.isPrototypeOf(baz)); // true
propertyIsEnumerble:用于检查给定属性能否使用for-in来枚举。
toLocaleString():返回对象的字符串。
var number = 3500;
console.log(number.toLocaleString()) // Displays "3,500" if in U.S. English locale
toString():返回对象的字符串表示。
var o = new Object();
o.toString(); // returns [object Object]
valueOf(): 返回对象的字符串,数值,或布尔表示,通常和toString() 返回的值相同。
var obj = {name:“张三”,age:"18"};
console.log(obj.valueOf() === obj);// true
Array 类型
数组是一种类列表对象,它的原型中提供了遍历和修改元素的相关操作。
创建数组的方法:
隐式创建
var arr = ["apple","oppo","vivo"];
直接实例化:
var arr = new Array("apple","oppo","vivo")
创建数组并给数组元素赋值
var arr = new Array();
arr[0] = "apple";
arr[1] = "oppo";
arr[2] = "vivo";
数组遍历方法:
for 语句
var arr = [1,2,4,6];
for(var i = 0,len = arr.length;i < ken;i++){
console.log(arr[i])
}
forEach 语句
var arr= [1,2,3,4,5];
arr.forEach(function(item){
console.log(item)
})
for-in 语句
var obj = {name:‘test’,color:'red',day:'sunday',number:6};
for(var key in obj){
console.log(obj[key])
}
for-of 语句
var arr= [{name:'nmxs',5,'test'}];
for(item off arr){
console.log(item)
}
map 方法 :方法会给原数组的每个元素都按顺序调一次callback函数。
var arr = [1,2,3,4];
var firearr = arr.map(current = > current * 5)
reduce 方法: 让数组中的前项和后项做某种计算
var wallets = [4,7,8,3];
var totalMoney = wallets.reduce(function (countedMoney,wallet){
return countedMoney + wallet.money
},0)
filter 方法:(不改变原数组) filter 为数组中的每一个元素调用一次callback 函数,并利用给所有使得callback 返回true 或 等价于 true 的值的元素创建一个新数组。
var arr = [1,2,3,4,5];
var morearr = arr.filter(function(number){
return number > 3;
})
every 方法: 为数组中的每一个元素执行一次callback 函数,直到它直到一个使callback 返回false的元素。
var arr = [1,2,3,4];
var result = arr.every(function(item,index){
return item>0
})
some 方法; 为数组中的每一个元素执行一次callback 函数,直到找到一个使得callback返回一个真值。
var arr = [1,2,3,4,5];
var result = arr.some(function(item,index){
return item > 3;
})
数组对象方法
concat() 链接两个或者更多的数组,并返回结果。
语法:arragObject.concat(arrayX,arrayX,....,arrayX)
join() 把数组的所有元素放入一个字符串,元素通过指定的分割父进行分隔。
var arr = ["George","John","Thomas"];
console.log(arr.join("."))
// George.John.Thomas
pop() 删除并返回数组的最后一个元素。
var arr = ["George","John","Thomas"];
console.log(arr.pop()) //Thomas
console.log(arr) // George John
push() 像数组的莫问添加一个或者多个元素,并返回新的长度。
var arr = ["George","John","Thomas"];
console.log(arr.push("Amos")) // 4
console.log(arr)// George,John,Thomas,Amos
reverse() 颠倒数组中元素的顺序。
var arr = ["George","John","Thomas"];
console.log(arr.reverse()); // Thomas,John,George
shift() 删除并返回数组的第一个元素。
var arr = ["George","John","Thomas"];
console.log(arr.shift()) // George
console.log(arr) // John,Thomas
slice() 从某个已有的数组返回选定的元素。
var arr = ["George","John","Thomas"];
console.log(arr.slice(1)) // George,John
console.log(arr.slice(1,2)) // John
sort() 对数组的元素进行排序。
var arr = ["George","John","Thomas","1"];
console.log(arr.sort()) // 1,George,John,Thomas
splice() 删除元素,并向数组添加新元素。
var arr = ["George","John","Thomas","Amose"];
console.log(arr.splice(1,0,"a")) // 像数组1 的位置添加元素 George a John Thomas Amose
toString() 把数组转换为字符串,并返回结果。
var arr = ["George","John","Thomas","Amose"];
console.log(arr.toString()) // George,John,Thomas,Amose
toLocaleString() 把数组转换为本地数组,并返回结果。
var arr = ["George","John","Thomas"];
console.log(arr.toLocaleString()) // George, John,Thomas
unshift() 像数组的开头添加一个或更多元素,并返回新的长度。
var arr = ["George","John","Thomas"];
console.log(arr.unshift("Will")) // 4
console.log(arr) // will,George,John,Thomas
valueOf() 返回数组对象的原始值。
var arr = ["George","John","Thomas"];
console.log(arr.valueOf())
Date 类型
Date 对象的语法
Date()来取当前天的日期
Date() // 来取当前天的日期
// Thu Nov 28 2019 22:13:23 GMT+0800 (中国标准时间)"
getDate() 方法返回月份的某一天
var D = new Date();
console.log(D.getDate()) // 28
getDay() 方法可返回表示星期的某一天的数字0~6
var D = new Date();
console.log(D.getDay()) //4
getMonth() 方法可返回表示月份的数字 0一月 11 十二月
var D = new Date();
console.log(D.getMonth()) // 10
getFullYear() 方法可返回一个标识年份的4位数字。
var D = new Date();
console.log(D.getFullYear()) // 2019
getHours() 方法可返回时间的小时字段
var D = new Date();
console.log(D.getHours) // 23
getMinutes() 方法可以返回时间的分支字段
var D = new Date();
console.log(D.getMinutes()) //16
getSeconds() 方法返回时间的秒 0~59
var D = new Date();
console.log(D.getSeconds) // 22
getMilliseconds() 方法可以返回时间的毫秒
var D = new Date();
console.log(D.getMilliseconds()) // 847
getTime() 方法可返回距 1970年1月1日之间的毫秒数
var D = new Date();
console.log(D.getTime()) //1575106709254
getTimezoneOffset() 返回本地时间与格林威治标准时间的(GMT)的分钟差。
var D = new Date();
console.log(D.getTimezoneOffset()) // -480
getUTCDate() 根据世界时从Date 对象返回月中的一天(1-31)
var D = new Date();
console.log(D.getUTCDate()); // 30
getUTCDay() 根据世界时返回表示星期的一天的一个数字
var D = new Date();
console.log(D.getUTCDay()); // 6
setSeconds() 设置当前时间段的秒
var D = new Date();