Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[面经]-[跟谁学]-[用户增长方向]-[2020.03.19] #11

Open
L1116 opened this issue Mar 19, 2020 · 1 comment
Open

[面经]-[跟谁学]-[用户增长方向]-[2020.03.19] #11

L1116 opened this issue Mar 19, 2020 · 1 comment
Labels

Comments

@L1116
Copy link
Collaborator

L1116 commented Mar 19, 2020

一面

  1. 客户端缓存,sessionStorage和localStorage的区别
  2. indexDB了解过吗
  3. 浮动的原理,清除浮动
  4. BFC原理,触发条件
  5. margin重叠的原理
  6. 不定宽高水平垂直居中
  7. 什么是跨域,跨域的方式,nginx怎么配,webpack跨域怎么配置
  8. promise原理,链式调用原理,实现promiseAll
  9. generator,async/await原理
  10. react的setState
  11. react中原生事件和react的事件哪个先执行,原理是什么
  12. 如何判断一个变量是不是一个数组,多种方式,还有一种constructor的方式,isArray
  13. instanceof实现原理
  14. http缓存机制
  15. redux的原理,说说你的理解
  16. this是什么,它的指向问题,下面的代码打印什么
function func1(){
     func2 = ()=>{
        func3 = () => {
            console.log(this)
        }
        func3()
     }
     func2()
}
func1()
  1. proto 和prototype的区别是什么
  2. 实现一个红绿灯,红灯3s,绿灯2s,黄灯1s,交替进行

二面(基础技术部)

  1. js中的引用是什么

2.深度拷贝,实现深度拷贝的时候有什么坑需要注意,使用递归的话如果是函数怎办,直接赋值吗?如果某个对象一直引用自身怎么办?

3.判断变量类型的方式,instanceof的原理,获取原型的方法是什么
4. 下段代码的执行机制

function f1(){
    console.time('time span')
}
function f2(){
    console.timeEnd('time span')
}

setTimeout(f1,100);
setTimeout(f2,200);
function waitForMs(n){
    var now = Date.now();
    while(Date.now() - now < n){
        
    }
}

waitForMs(500)

//输出:time span: 0.075927734375ms

setTimeout的执行机制,不是直接推入宏任务,而是先放到web api中去计时,时间到了再放进宏任务,所以阻塞500ms之后,f1 f2 都进宏任务队列了,随后几乎一起执行

  1. 闭包的定义是什么?闭包一定是函数嵌套函数吗?为什么闭包中的变量可以一直被使用?什么是垃圾回收?垃圾回收是怎么执行的,什么时候会去清除垃圾变量?
  2. 什么是函数作用域?什么是块级作用域
  3. sort参数,用法和实现原理。当compare函数return 0的时候,一定是不调整顺序吗
  4. 算法的稳定性是怎么评估的
  5. 实现一个方法,对一个数组中的元素作加法运算,元素可能是字符串,数字,对象,仅对可转为数字的元素作累加。使用es6新特性,要考虑边界情况,性能情况
  6. reduce函数的参数是什么,第一个函数,第二个指初始累加值,第二个参数必须传吗?什么时候该传,什么时候不传
  7. react 16以后出来的新特性都有哪些
  8. react16之后新的生命周期方法都有什么
  9. setState的参数都有哪些,第一个参数是函数的时候与是对象的时候有什么区别吗,为什么推荐使用函数

14.setState的原理,什么时候同步什么时候异步?钩子函数有哪些?setState写在一个循环里不停的执行setState,页面会有更新吗

15.usestate怎么用,返回属性和设置属性的函数,为什么这个属性的值可以被再次修改
const [count, setCount] = useState(0); //const修饰, 为什么count再执行setCount之后能被修改

  1. useEffect参数都有什么,用法
  2. renderProps用法
  3. HOC是什么,可以解决什么问题,在什么场景下可以用

redux

  1. redux的原理

2.在项目中你是如何使用的,讲一下整个过程

  1. 用redux之后state是如何更新的?组件是如何拿到state的?state是怎么做到全局共享的?

  2. store可以有多个吗?如果一个项目比较复杂,维护的state太多,有什么优化手段?store可以拆分吗?如何拆分?

  3. connect的作用是什么,怎么连接react和redux的,内部是怎么实现的

6 如果有异步请求,请求发出去之后结果延迟到达,这种情况下state是如何更新的

  1. middleware在项目中你是怎么使用的,为什么要用middleware,使用middleware带来的好处是什么?使用的时候有什么要注意的地方吗

mobx

  1. mobx和redux的区别是什么
  2. 什么是双向绑定和单向绑定
  3. 什么是观察者模式

node

  1. 用node做了哪些东西
@L1116
Copy link
Collaborator Author

L1116 commented Mar 19, 2020

18题红绿灯

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #colorLight {
            width: 50px;
            height: 50px;
            border-radius: 100%;
            background-color: white;
        }
    </style>
</head>
<body>
    <div id="colorLight"></div>
</body>
<script>
    let colorLight = document.getElementById('colorLight');
    function sleep(time) {
        return new Promise(function (resolve) {
            setTimeout(resolve, time);
        })
    }
    async function changeColor(color, time) {
        colorLight.style.backgroundColor = color;
        await sleep(time)
    }
    async function main() {
        while(true) {
            await changeColor('green', 3000);
            await changeColor('yellow', 1000);
            await changeColor('red', 2000);
        }
    }
    main()
</script>
</html>

@L1116 L1116 changed the title [面经]-[跟谁学]-[2020.03.19] [面经]-[跟谁学]-[用户增长方向]-[2020.03.19] Mar 20, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants