SOURCE

// var arr = [1, 1, 'true', 'true', 15, 15, false, false, undefined, undefined, null, null, NaN, NaN, 0, 0]
// function unique(arr) {
//     return Array.from(new Set(arr))
// }
// (function () {
//     console.log(...new Set(arr))
//     let h = new Set()
//     h.add("4")
//     h.add("6")
//     console.log(...h)
//     let m = new Map([["name","lilil"],["nam","lilil"],["ne","lilil"]]);
//     m.set("l","csa")
//     // m.set(a,"5")
//     console.log(...m)
// })()

// (function () {
//     var ajax = new XMLHttpRequest();
//     ajax.open('get', 'http://kumanxuan1.f3322.net:8809/travels/query')
//     ajax.onreadystatechange = function () {
//          console.log(ajax.responseText);
//         if (ajax.readyState == 4 && ajax.status == 200) {

//         }
//     }
//     ajax.send();
// })()

(function a() {
    // 1、创建 AJAX 对象;
    var ajax = new XMLHttpRequest();
    var formData = new FormData();
    formData.append('username', 'johndoe');
    // ajax.timeout = 3000;
    // 2、设置请求路径,请求方式等;ajax.open(请求方式,路径)
    ajax.open('post', 'https://jsonplaceholder.typicode.com/posts');
    // 3、绑定监听状态改变的处理函数,在处理函数可获取响应数据;
    // ajax.onload = function (e) {

    //     if (this.status == 200 || this.status == 304) {
    //         console.log("哈哈哈哈")
    //         alert(this.responseText);
    //     }
    // }
    ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    ajax.onreadystatechange = function () {
        console.log("哈哈哈哈")
        // console.log(ajax.readyState);
        if (ajax.readyState == 4 || ajax.status == 200) {
            console.log("哈哈哈哈")
            // 此时获取服务器发过来的数据
            console.log(ajax)// 得到的是字符串对象,需要用JSON.parse(txt)转对象

        }
    }
    // 4、发送请求。
    ajax.send();
})()
console 命令行工具 X clear

                    
>
console