工具类
1.获取2017-06-10格式的日期
function formatDate(orgDate) {
if (!orgDate) {
orgDate = new Date()
}
var year = orgDate.getFullYear();
var month = orgDate.getMonth();
var date = orgDate.getDate();
if (month < 10) {
month = '0' + month
}
if (date < 10) {
date = '0' + 10
}
var format = year + '-' + month + '-' + date;
return format;
}
2.获取随机数,要求的长度一致的字符串格式
function getRandom(length) {
var num = Math.random();
num += '0000000000';
return num.substring(0,length);
}
DOM操作
3.DOM是哪种基本的数据结构
树
4.DOM操作常用的API有哪些
https://www.cnblogs.com/clairexia/p/6635029.html
网上找了一篇文章
5.DOM节点的attr和property有何区别
property是DOM中默认的基本属性,是JavaScript里的对象;
attribute是HTML标签上的特性,它的值只能够是字符串;
事件
6.编写一个通用的事件监听函数
最简单的可以这么写:
function bindEvent(elem,type,fn){
elem.addEventListener(type,fn)
}
优化的:
function bindEvent(elem,type,selector,fn){
if(fn==null){
fn=selector
selector=null
}
elem.addEventListener(type,function(e){
var target
if(selector){
target=e.target;
if(target.matches(selector)){
fn.call(target,e)
}
}
else{
fn(e)
}
})
}
var div3=document.getElementById('div3');
bindEvent(div3,'click','A',function(e){
console.log(this.innerHTML)
})
7.描述事件冒泡的过程
这个百度很多,我的简单理解是:子组建和父组件绑定了一样的方法,如onclick,当子组件触发自身onclick,会向上冒泡,触发父组件onclick事件
8.对一个无限下拉加载页面,如何给每个图片绑定事件
事件代理,不把事件绑定在每个img上,绑定在父组件上
Ajax
9.手动编写一个ajax,不依赖第三方库
var xhr=XMLHttpRequest();
xhr.open('GET','xx',false);
xhr.onreadystatechange=function(){
if(xhr.readyState==4){
if(xhr.status==200){
console.log(xhr.responseText)
}
}
}
xhr.send(null)
其他
10.描述一下cookie、sessionStorage、localStorage的区别
cookie:用于客户端和服务端通信
每次请求都会携带,只有4kb,api简单需要封装才能用
sessionStorage、localStorage:最大5M,请求不携带,api简单易用
session生命周期在浏览器关闭时结束
网友评论