JavaScript对象
- 概述
对象Object是js的核心概念,最重要的数据类型,对象就是一种无序的数据集合,由若干键值对(key-value)构成
示例:var o1 = {}; //定义空对象
var o2 = {name: 'Jim'};//定义name属性的对象
var o3 = {name: 'Jim', age: 19, gender: '男'};//定义含有3个属性的对象
对象的3个生成方法
示例:
var o1={};
var o2=new Object();
var o3=Object.create(Object.prototype);
访问对象成员 :对象.成员
对象成员遍历: for...in循环用来遍历一个对象的全部属性
var o={a:1,b:2,c:3};
for(var i in o){
console.log([i]);
//1
//2
//3
- javaScript的深拷贝
深拷贝和浅拷贝的区别
1.浅拷贝: 将原对象或原数组的引用直接赋给新对象,新数组,新对象/数组只是原对象的一个引用
2.深拷贝: 创建一个新的对象和数组,将原对象的各项属性的“值”(数组的所有元素)拷贝过来,是“值”而不是“引用”
为什么要使用深拷贝?
我们希望在改变新的数组(对象)的时候,不改变原数组(对象)
深拷贝的要求程度
我们在使用深拷贝的时候,一定要弄清楚我们对深拷贝的要求程度:是仅“深”拷贝第一层级的对象属性或数组元素,还是递归拷贝所有层级的对象属性和数组元素?
怎么检验深拷贝成功
改变任意一个新对象/数组中的属性/元素, 都不改变原对象/数组
3.document 对象
1、概念
(1)document 对象:对页面的元素进行增、删、改(css属性),查(获取元素)等操作。
(2)document 对象创建元素
使用document对象创建一个div并挂载到body容器里面,步骤:
① 创建一个函数
② 在函数里面,调用document创建元素的方法:createElement("元素名称");,并将其赋值给一个变量
③ 使用该变量设置元素的css属性:对象名.style.css属性 = "css属性值";
④ 将创建的元素并设置了css的元素挂载到父容器里面:document.body.appendChild(对象名)
document 对象获取(查询)元素
document.getElementById("id名称");
document.getElementByClassName("class名称"); document.getElementByTagName("标签名称");
4.Data 对象
Date对象用于处理日期和时间。
成员 |
作用 |
getMinutes() |
获取分钟数,范围0~59 |
setMinutes(value) |
设置分钟数 |
getSeconds() |
获取秒数,范围0~59 |
setSeconds(value) |
设置秒数 |
getMilliseconds() |
获取毫秒数,范围0~999 |
setMilliseconds(value) |
设置毫秒数 |
getTime() |
获取从1970-01-01 00:00:00距离Date对象所代表时间的毫秒数 |
setTime(value) |
通过从1970-01-01 00:00:00计时的毫秒数来设置时间 |
Data对象的使用时,toString()方法用来方便查看对象保存的时间信息。
var date = new Date();
// 基于当前时间创建Date对象
date.toString();
// 示例结果:Fri Oct 06 2017 11:53:04 GMT+0800 (中国标准时间)
date.getFullYear(); // 示例结果:2017
date.getMonth(); // 示例结果:9
date.getDate(); // 示例结果:6
使用Data对象时,可以在创建的时候传入参数指定一个日期:
// 方式1:分别传入年、月、日、时、分、秒(月的范围是0~11,即真实月份-1)
var date1 = new Date(2017, 9, 1, 11, 53, 4);
date1.toString();
// 返回结果:Sun Oct 01 2017 11:53:04 GMT+0800 (中国标准时间)
// 方式2:通过字符串传入日期和时间
var date2 = new Date('2017-10-01 11:53:04');
date2.toString();
// 返回结果:Sun Oct 01 2017 11:53:04 GMT+0800 (中国标准时间)
具体演示:
new Date('2017');
// Sun Jan 01 2017 08:00:00 GMT+0800 (中国标准时间)
(new Date(2017, 9);
// Sun Oct 01 2017 00:00:00 GMT+0800 (中国标准时间)
new Date(2017, -1);
// Thu Dec 01 2016 00:00:00 GMT+0800 (中国标准时间)
new Date(2017, 12);
// Mon Jan 01 2018 00:00:00 GMT+0800 (中国标准时间)
new Date(2017, 0, 0);
// Sat Dec 31 2016 00:00:00 GMT+0800 (中国标准时间)
实例:(年历)
// calendar()函数,根据指定年份生成`年历。
function calendar(y) {
// 获取指定年份1月1日的星期数值,保存在变量w中。
var w = new Date(y, 0).getDay();
Var html = ‘ ’;
return html;
}
var d}]}ate = new D