一、日期对象Date:
创建日期对象:①获取当前日期 var date = new Date();
new 通过类名 创建对象的关键字
Date 日期类
通过日期类 -> 创建一个当前的日期对象
日期 年 月 日 周 时 分 秒 毫秒
②获取将来 过去的时间(指定时间)new Date(1288336112000)
var date = new Date();
date.setTime(1288336112000);
时间戳:1970年-某个时间的 毫秒数
时间戳 转日期对象 ① new Date(1288336112000)
②var date = new Date();
③date.setTime(1288336112000);
日期对象->时间戳 var date = new Date();
var t = date.getTime();
设置日期 var date = new Date();
date.setHours(13);
补零的函数
function fillZero(num) {
if (num<10){
num = "0"+num;
}
return num;
// return num<10?"0"+num:num;
}
function yyyymmdd(timestamp) {
//如果传了 时间戳 就创建指定日期
//如果没有传时间戳 就创建 当前时间
var date = timestamp?new Date(timestamp):new Date();
var y = date.getFullYear();
var m = date.getMonth()+1;
var d = date.getDate();
//2020-08-09
m = fillZero(m);
d = fillZero(d);
return y+"-"+m+"-"+d;
}
function hhmmss(timestamp) {
var date = timestamp?new Date(timestamp):new Date();
var h = fillZero(date.getHours());
var m = fillZero(date.getMinutes());
var s = fillZero(date.getSeconds());
var ms = date.getMilliseconds();
return h+":"+m+":"+s+" "+ms;
}
function mmdd(timestamp) {
var date = timestamp?new Date(timestamp):new Date();
var m = fillZero(date.getMonth()+1);
var d = fillZero(date.getDate());
return m+"月"+d+"日";
}
function week(timestamp) {
var date = timestamp?new Date(timestamp):new Date();
var arr = ["日","一","二","三","四","五","六"];
// var str = "日一二三四五六";
// return "星期"+str.charAt(date.getDay());
return "星期"+arr[date.getDay()];
}
获取上午(AM) 下午(PM)
function apm(timestamp) {
var date = timestamp?new Date(timestamp):new Date();
var hours = date.getHours();
var temp;//上下午结果
if (hours === 12){
//有可能是下午
//判断分秒是不是多了
if(date.getSeconds()||date.getMinutes()){
temp = "下午";
}
}
temp = hours<=12?"上午":"下午";
return temp;
}
二、DOM元素(document object model)
文档对象模型 就是用js表示的标签
可以跟页面交互?
1.可以在js中获得到 标签
2.有哪交互(事件)
3.逻辑
查询dom元素的方法
1.查询DOM元素{
1.document.querySelector("选择器的名字") 查找到的永远是第一个元素
2.document.querySelectorAll("选择器的名字")
3.id选择器document.getElemetByld("不需要加#");
4.通过类选择器查document.getElementByClassName("item");//类选择器->伪数组
5.通过元素选择器查找document.getElementsByTagName("div");
伪数组
}*/
2.创建DOM元素:
doment.createElement.createElement("标签的名字")
3.DOM元素的操作:
1.把DOM元素放到父元素里面 父元素.appendChild(子元素)
2.删除元素
3.替换元素
4.设置元素的样式:
dom元素.style
5.设置元素的属性
a.dom元素.属性名=属性值 查询dom元素.属性名
dom元素.setAttribute(属性名,属性值) 查询dom元素.getAttribute("属性名")
6.事件:
1.鼠标事件:
鼠标移入事件:
onmouseover 先调用
onmouseenter 后调用
鼠标移出事件:
onmouseleave 先调用
onmouseout 后调用
1.点击事件 onClick dom.onClick=function(事件对象){}
2.键盘事件
3.状态事件
4.事件监听:
添加监听事件 dom.addEventListen("事件名",函数)
移除监听事件
input value 输入框输入的值
事件里面的大技巧:
阻止元素的默认行为 event.preventDefault(); 如:去掉a标签刷新页面(跳转)功能 表单标签里面的
通过js设置样式 div.style.background = "red";
事件 点击 onClick:
var div = document.createElement("div");
div.onclick = function(){
};
三、BOM
Browser Object Model:浏览器对象模型 里面的内容是所有关于浏览器的操作
1.窗口对象
window窗口包含的部分
浏览器可视的范围:
1.导航
2.历史记录
3.屏幕大小
4.位置
窗口对象 是Window的实例对象
注意:1.定义的全局变量 是定义到了window对象上面 可以通过window.xx访问
2.在最外面定义的函数 是定义到了window对象上面 可以通过window.xx访问
尺寸:
window.innerHeight-浏览器窗口的内部高度(包括滚动条)
innerWidth-浏览器窗口的内部宽度(包括滚动条)
如果要求使用IE6.7.8时 使用 document.body.clientHeight
document.body.clientWidth
动态获取窗口的宽高:
onresize=function{
console.log();
}
事件:
resize
2.Location 位置定位
location.hostname 返回 web 主机的域名
location.pathname 返回当前页面的路径和文件名
location.port 返回 web 主机的端口 (80 或 443):
80(web页面的默认端口) ;443(https 加密的超文本传输协议端口)普通的HTTP是没加密的,不需要开启443;21(FTP文件传输协议端口);3306(mysql数据库默认端口);
location.protocol 返回所使用的 web 协议(http: 或 https:)
location.search返回搜索的结果(http GET方法的参数) 页面之间传参
location.href 本页的位置 指定页面要跳转的位置
3.History 历史记录
前提:必须有历史记录 才能使用这些函数
back 必须跳转了下一个页面 才有返回
forward 必须跳转过下一个页面(有返回过上一页)才能使用前进的功能
go 正数 往后跳 负数 返回 挑几级由里面数字决定
4.navigator 导航
1.geolocation 获取地理位置信息 经纬度
getCurrentPosition获取当前位置信息 参数 (成功时候调用的函数 失败时候调用的函数)
2.getUserWedia,mediaDevices 音频流 视频流的处理
5.定时事件 setInterval(function(){
定时器(每隔多久执行一次) }500);
setTimeout(function(){
延迟执行(只执行一次)},500)
6.数据持久化