工具類
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.獲取隨機(jī)數(shù)浪汪,要求的長(zhǎng)度一致的字符串格式
function getRandom(length) {
var num = Math.random();
num += '0000000000';
return num.substring(0,length);
}
DOM操作
3.DOM是哪種基本的數(shù)據(jù)結(jié)構(gòu)
樹
4.DOM操作常用的API有哪些
https://www.cnblogs.com/clairexia/p/6635029.html
網(wǎng)上找了一篇文章
5.DOM節(jié)點(diǎn)的attr和property有何區(qū)別
property是DOM中默認(rèn)的基本屬性,是JavaScript里的對(duì)象宙帝;
attribute是HTML標(biāo)簽上的特性,它的值只能夠是字符串难衰;
事件
6.編寫一個(gè)通用的事件監(jiān)聽函數(shù)
最簡(jiǎn)單的可以這么寫:
function bindEvent(elem,type,fn){
elem.addEventListener(type,fn)
}
優(yōu)化的:
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.描述事件冒泡的過(guò)程
這個(gè)百度很多捏卓,我的簡(jiǎn)單理解是:子組建和父組件綁定了一樣的方法,如onclick否纬,當(dāng)子組件觸發(fā)自身onclick吕晌,會(huì)向上冒泡,觸發(fā)父組件onclick事件
8.對(duì)一個(gè)無(wú)限下拉加載頁(yè)面临燃,如何給每個(gè)圖片綁定事件
事件代理睛驳,不把事件綁定在每個(gè)img上,綁定在父組件上
Ajax
9.手動(dòng)編寫一個(gè)ajax膜廊,不依賴第三方庫(kù)
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的區(qū)別
cookie:用于客戶端和服務(wù)端通信
每次請(qǐng)求都會(huì)攜帶溃论,只有4kb屎蜓,api簡(jiǎn)單需要封裝才能用
sessionStorage、localStorage:最大5M钥勋,請(qǐng)求不攜帶炬转,api簡(jiǎn)單易用
session生命周期在瀏覽器關(guān)閉時(shí)結(jié)束