腾讯QQ 前端一面 手写题整理

面完几个小时,关电脑的时候发现写了手写题的页面还没关,数据还在,就记录了一下,整理之后分享给大家.

如果有任何问题可以联系我删除

T1

// t1
function isBig(thing){
    if(thing == 0 || thing == 1 || thing == 2){
        return false;
    }
    return true;
}

console.log(isBig(1));
console.log(isBig([2]));
console.log(isBig([3]));

写出输出之后问了==的转化规则,以及===

T2

// t2
setTimeout(() => {
    console.log('1');
});
(function (){
    new Promise((resolve, reject) => {
        resolve(2,3);
        console.log('4');
    }).then((agr1,arg2,arg3) => {
        console.log(agr1,arg2,arg3);
        return agr1;
    }).finally(() => {
        const args = Array.prototype.slice.apply(arguments);
        console.log(args);
    });
})(5);
console.log('6');

说出输出,之后问了事件循环,宏队列微队列等等

T3

// t3
var a = 100;
function fn(){
    console.log(a);
    var a = 200;
    console.log(a);
}

fn();
console.log(a);

var a;
console.log(a);
var a = 300;
console.log(a);

T4 使用闭包的方式,写一段JS实现如下功能:函数每调用一次则该函数的返回值加1。

function addOne(){
    var a = 0;
    return function(){
        return a++;
    }
}

T5 看输出,如何修改

// t5
for (let i = 0; i < 3; i++) {
    setTimeout(() => {
        console.log(i);
    });
}
// 3 3 3
// let i = 0;

T6 给出一个字符串:将其中的abc删除,将其中的数字左右加上【】,将其中的数字*2

// t6
var str = 'abc345efgabcab';
var str1 = str.replace(/(a|b|c)/g, '');
console.log(str1);
var str2 = str.replace(/\d/g, `[$&]`);
console.log(str2);
var str3 = str.replace(/\d/g, (match) =>{
    return String(Number(match)*2);
});
console.log(str3);

// 345efg
// abc[3][4][5]efgabcab
// abc6810efgabcab

T7 手写bind

T8 手写节流函数

T9 js实现二分查找

#实习##前端##腾讯##面试#
全部评论

相关推荐

3 19 评论
分享
牛客网
牛客企业服务