2021阿里蚂蚁花呗前端校招面试

1.自我介绍

2.做过的项目介绍

3.编程题:区间合并

示例 1:
输入: [[1,3],[2,6],[8,10],[15,18]]
输出: [[1,6],[8,10],[15,18]]

2021阿里蚂蚁花呗前端校招面试_第1张图片

var merge = function(intervals) {
    if(intervals.length == 0) return [];
    var res = [];
    // 对数组中的每一项排序
    intervals.sort((a,b) => a[0] -b[0]);
    res.push(intervals[0]);
    for(var i=1; i<intervals.length; i++) {
        // [1, 2], [3, 4]后项的左边界大于前项的右边界,直接push
        if(intervals[i][0] > res[res.length-1][1]) {
            res.push(intervals[i])
        } else if(intervals[i][1] > res[res.length-1][1]) {
            // [1, 3], [2, 4]后项的右边界大于前项的右边界,有交集,需要合并
            // 合并只需要把 后项的右边界 赋值给 前项的右边界
            res[res.length-1][1] = intervals[i][1];
        }
    }
    return res;
};

4.什么是原型链?

原型链就是实例对象和原型对象之间的链接。每个函数都有一个prototype属性,这个prototype属性就是我们的原型对象,我们拿这个函数通过new构造函数创建出来的实例对象,这个实例对象自己会有一个指针(proto)指向他的构造函数的原型对象!这样构造函数和实例对象之间就通过( proto )连接在一起形成了一条链子。
2021阿里蚂蚁花呗前端校招面试_第2张图片

5.什么是跨域?

浏览器从一个域名的网页去请求另一个域名的资源时,协议、域名、端口任一不同,都是跨域.
跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器施加的安全限制。

解决跨域的方法:
1. JSONP
2. 使用代理server,如Nginx
3. 服务端设置Header,如
1. Access-Control-Allow-Origin:* //允许所有来源访问
2. Access-Control-Allow-Method:POST,GET //允许访问的方式

6.写一下Ajax代码

1. 创建 Ajax 对象
		var xhr = new XMLHttpRequest();
2. 告诉 Ajax 请求地址以及请求方式
		xhr.open('get', 'http://www.example.com');
3. 发送请求
		xhr.send();
4. 获得服务器端给与客户端的响应数据
		xhr.onload = function(){
				console.log(xhr.responseText);
		}

7.以下程序的输出

var promise = new Promise(function(resolve,reject){
console.log(1)
resolve();
console.log(2)
});
promise.then(
console.log(3)
)
console.log(4)
答案:1243。 解释:promise 是一个异步函数,Promise 中的参数resolve() 可以认为是用来激活 then 方法的,then中执行的是异步操作。Promise构造函数内部的依然是同步进行时。所以,promise.then中的console.log(3)最后执行。

以上答案部分转自其他CSDN博主,部分是本人原创。欢迎大家指正。

你可能感兴趣的:(2021阿里蚂蚁花呗前端校招面试)