js 基础2
一、bom对象
1. history操作历史记录
-
前进一步:
history.forward()
-
后退一步:
history.back()
-
切换n步:
history.go(n)
-
n是正数:表示前进n步
-
n是负数:表示后退n步
-
二、dom对象(用来操作网页)
1. dom简介
-
dom:Document Object Model,文档对象模型。让js调用dom对象来操作网页。
-
dom树:一个网页必须要被加载到浏览器内存中:会把整个网页中所有的标签、属性、文本全部转换成节点对象,这些对象按照网页里原本的层级结构形成一棵树形,这棵树就是dom树
2. 使用dom操作网页
2.1 操作标签
2.1.1 获取标签(查)
-
document.getElementById
:根据id获取一个标签Element对象 -
document.getElementsByName
:根据name获取一批标签Element对象数组 -
document.getElementsByTagName
:根据标签名称获取一批标签Element对象数组 -
document.getElementsByClassName
:根据类名获取一批标签Element对象数组
注意:下边三个getElementsByxxx方法,
1. document对象可以使用:是从整个网页里查找标签
Element对象也可以使用:从这标签对象内部查找标签
2.1.2 创建标签(增)
-
document.createElement("标签名称")
创建出来的标签,不会直接显示。必须要插入到dom树里,才会生效
2.1.3 插入标签(改)
-
父标签.appendChild(子标签)
2.1.4 删除标签(删)
-
标签.remove()
2.2 操作标签体
-
标签体:开始标签和结束标签中间的全部内容
-
获取标签体:
var html = 标签对象.innerHTML
-
设置标签体:
标签对象.innerHTML = "<h1>html代码会生效</h1>"
2.3 操作属性
-
获取属性:
-
var v = 标签对象.属性名
-
var v = 标签对象.getAttribute("属性名")
-
-
设置属性:
-
标签对象.属性名=值
-
标签对象.setAttribute("属性名", 值)
-
-
删除属性:
-
标签对象.removeAttribute("属性名")
-
注意:如果属性名称是关键字,或者是自定义的属性,就必须要使用Attribute相关的方法;其它属性可以使用.属性名的方式
三、js的引用数据类型(内置类)
1. 简介
js的引用数据类型有9个:
-
Array数组
-
Boolean,boolean的包装类型
-
Date日期
-
Math数学工具类
-
Number,number的包装类
-
String,string的包装类
-
RegExp正则表达式
-
Functions,函数
-
Events,事件
2. Array(类似Java的List)
2.1 创建数组对象
var arr1 = new Array(); //创建长度为0的空数组
var arr2 = new Array(3);//创建长度为3的空数组
var arr3 = new Array("a", "b", "c");//创建数组,并初始化元素
var arr = ["a","b"];//创建数组,并初始化元素
2.2 数组对象的属性
//获取数组的长度
var len = arr.length;
//截断数组,保留前2个
arr.length = 2;
2.3 数组对象的方法
//把多个数组合并成一个
var arr = arr1.concat(arr2,arr3);
//数组里元素顺序颠倒。没有返回值,直接颠倒原数组
arr.reverse();
//数组元素拼接成字符串,按照指定分隔符分隔
var str = arr.join(",");
3. Date(相当Java的Date)
3.1 创建日期对象
var now = new Date();//当前日期当前时间
var date1 = new Date(2019, 9, 1);//创建指定日期 2019-10-1
var date2 = new Date(2019, 9, 1, 10, 20, 30);//创建指定日期指定时间 2019-10-1 10:20:30
3.2 日期对象的方法
//获取年
var year = date.getFullYear();
//获取月
var month = date.getMonth() + 1;
//获取日
var d = date.getDate();
//获取时
var hour = date.getHours();
//获取分
var minute = date.getMinutes();
//获取秒
var second = date.getSeconds();
//获取毫秒
var ms = date.getMilliseconds();
//获取1970年1月1号开始的毫秒值
var ms = date.getTime();
//以毫秒值设置一个日期
date.setTime(ms);
4. Math(相当Java的Math)
v = Math.ceil(3.0000000001);//4
v = Math.floor(3.999999999);//3
v = Math.round(3.49);//3
v = Math.random();//[0, 1)
v = 90 + Math.random()*10;//[90, 100)
v = Math.pow(2, 10);//1024
5. RegExp
//1. 创建正则表达式对象
var reg = /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/;
//2. 校验一个邮箱格式是否正确
var result = reg.test("zhangsan@163.com");
console.log(result);