三者都用于网络请求,但是不同维度
Ajax:
Asynchronous JavaScript and XML(异步的 JavaScript 和 XML),一种技术统称
Fetch:
浏览器原生 API
它和 XMLHttpRequest 一个级别
语法更加简洁、易用
原生支持 promise
Axios:
是第三方库,
https://axios-http.com
https://www.npmjs.com/package/axios
内部可用 XMLHttpRequest 和 Fetch 来实现
支持 promise
面试题:请用 XMLHttpRequest 实现 ajax
function ajax(url, successFn) {
const xhr = new XMLHttpRequest()
xhr.open("GET", url, false)
xhr.onreadystatechange = function () {
// 这里的函数异步执行,可参考之前 JS 基础中的异步模块
if (xhr.readyState == 4) {
if (xhr.status == 200) {
successFn(xhr.responseText)
}
}
}
xhr.send(null)
}
面试题:用 fetch 实现一个 ajax
function ajax(url) {
return fetch(url).then(res => res.json())
}
1