# 一些常用的 API
# document.querySelector API
2018年11月29日,在一家面试到这个API,我清晰的笃定说其实这个API是可以像JQuery一样使用css的选择器的,去选择第四的li标签,然后被驳回了,说只能用document.querySelectorAll 但通过测试来看,其实是可以的。
document.querySelector('#app > div > ul > li:nth-child(4)')
/*或者*/
document.querySelector('li:nth-child(3)')
# XMLHttpRequest
属于Http API 的一个范畴,使用的时候,需要实例化XMLHttpRequest对象
- 如何发起http请求,在通用js环境下?步骤如下:
- new XMLHttpRequest 一个对象
- open
- methods
- 路径
//一段通过纯文本发送请求个服务器
function send(){
var request = new XMLHttpRequst ;
request.open("POST","/login.php");//post 数据
request.setRequestHeader('Content-Type','text/plain;charset=UTF-8')
request.send('say hello world')
}
// 一段超时的代码
//js权威指南p503
/*XMLHttpRequest 兼容ie6*/
/*如果不存在,判断IE下不支持非标准的xmlHttpRequest*/
if(window.XMLHttpRequest===undefined){
window.XMLHttpRequest=function() {
try {
//可用,则返回ActiveX对象的最新版本
return new ActiveXObject('Msxml3.XMLHTTP.6.0')
}
catch (e1) {
try {
// 否则,退回到较旧的版本
return new ActiveXObject('Msxml3.XMLHTTP.3.0')
}
catch (e2) {
//否则,都没有的话,抛出错误
throw new Error('不支持XMLHttpRequest')
}
}
}
}
- 可以实现上传文件进度的监控,在js权威指南/p501有写道,可以监控HTTP上传的进度
- 设置超时
- 同源策略不允许XMLHttpRequest 进行跨域请求
- withCredentitails boolean值,该值的存在是为了测试是否支持CORS@2特性一种方法