对象
数组可以存放多个数据,但是对每个数据的描述不够详细
对象:对一个或一类事物特征和行为的描述(object)
对象是以键值对形式存在的数据
注意:数组也是一个特殊的对象 数组(下标:值) 对象(键名:值)
创建方法:(1)字面量创建=>快捷创建
var obj = {};//空对象
(2)构造函数创建(实例化对象)new Object()
var obj = new Object();//空对象
var obj = new Object({
//"name":"陶陶",
//"class":"2105",
//"chinese":66,
//"math":76,
name: "陶陶",
//name=>键名(属性名 本质:字符串,可以省略引号)"张三"=>键值(属性值 可以是任意类型)
class: "2105",
chinese: 66,
math: 76,
say: function () {
console.log("hello everyone")
}
});//有内容的对象
// obj的属性要加的.或者[],不然就是window的属性了
console.log(obj["name"]);
console.log(obj.name);
obj.say();
对象的特性:
(1)对象是以键值对形式存在的数据(排名不分先后)
(2)对应键名取值和赋值
a.点语法 对象.属性名 => 快捷取值
b.中括号语法 对象[“属性名”] => 一遍配合变量和for…in循环使用
注意:
对象取值 取一个不存在属性名 => undefined
对象赋值 赋值 一个不存在的属性名 => 新增该属性到对象中
var zhang = {
name: "张三",
class: "2105",
chinese: 55,
english: 77,
math: 66,
isStudy: true,
hobby: ["唱歌", "跳舞", "学习"],
say: function () {
console.log("hello");
}
}
console.log(zhang);
// a. 点语法
// 取值
// console.log(zhang.name);
// console.log(zhang.class);
// console.log(zhang.chinese);
// console.log(zhang.math);
// console.log(zhang.hobby);
// console.log(zhang.say);
// zhang.say();
// console.log(zhang.heihei); // 对象取值去一个不存在属性名 =>undefined
// 赋值
// zhang.name = "李四";
// zhang.class = "H5-2105";
// zhang.heihei = "嘿嘿"; // 对象赋值一个不存在的属性名 => 新增该属性到对象中
// console.log(zhang);
// b. 中括号语法
// 取值
// console.log(zhang["name"]);
// console.log(zhang["class"]);
// console.log(zhang["chinese"]);
// console.log(zhang["math"]);
// console.log(zhang["hobby"]);
// console.log(zhang["say"]);
// zhang["say"]();
// console.log(zhang["heihei"]);
// 赋值
// zhang["name"] = "李四"
// zhang["class"] = "H5-2105";
// console.log(zhang);
(3) 可以被循环遍历 for…in
// 循环遍历
for (var key in zhang) {
//key变量 =>存的是 键名(字符串) "name" "class" "english"
console.log(key, zhang[key]); // zhang[key] => zhang["name"]
console.log(key, zhang.key); //错误写法,key是一个变量,不是键名,只能用[]语法
}
// for...of 报错
// for (var val of zhang) {
// console.log(val);
// }
日期对象的创建方式:
1.无参 当前时间
2.数字单参 1970.1.1 开始往后计算的都是毫秒数
3.数字多参 2020,1,1,1,1,1 月份从0开始,时间会自动计算
4.字符串单参 '202211 1:1:1’时间是正常的,不计算 时间错误则Invalid date
时间对象的获取方式:
获取/设置年月日
getFullYear()/setFullYear(2014)
getMonth()/setMonth(8)
注意:获取月份是从0开始的
getDate()/setDate(25)
获取/星期几
getDay() 0-6
获取/设置时分秒
getHours()
getMinutes()
getSeconds()
var date = new Date();//创建当前日期对象
var year = date.getFullYear();//获取当前年
console.log(year);
var month = date.getMonth()+1;//获取当前月
console.log(month);
var day = date.getDate();//获取当前日
console.log(day);
var week = date.getDay();//获取当前周
console.log(week);
var hour = date.getHours();//获取当前小时
console.log(hour);
var minute = date.getMinutes();//获取当前分
console.log(minute);
var second = date.getSeconds();//获取当前秒
console.log(second);
getTime()/setTime()
getTime获取某个日期自1970年1.1以来的毫秒数
setTime修改日期的毫秒数,对应的日期时间也会修改
var d = new Date(); d.setTime(56521211021);
// 时间戳 获取1970.1.1 至今的毫秒数
var time = date.getTime();
console.log(time);
//格式化日期的函数封装
function formatdate(time) {
var date = new Date(time);
var year = date.getFullYear();
var month = date.getMonth();
var day = date.getDate();
var week = date.getDay();
var hour = date.getHours();
var minute = date.getMinutes();
var second = date.getSeconds();
var arr = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]
return year + "/" + month + "/" + day + " " + hour + ":" + minute + ":" + second + " " + arr[week]
}
formatdate(new Date());
console.log(formatdate(new Date()));