腾讯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实现二分查找
#实习##前端##腾讯##面试# 查看11道真题和解析
查看11道真题和解析