面试记录2

178 阅读3分钟

一面   2020.06.05   weisihuahuo  

str = 'asbbbdsbsww'  去重变成  newStr = 'asbdsbsw'

现场答案:

splice会有改变原数组,原数组改变后索引对应的值也就变了,这样写是错的

const str = 'asbbbsbs'

function fn(str) {
  const arr = str.split('')
  for(var i = 0; i<= arr.length-1; i++ ){
    if(arr[i] === arr[i+1]) {
      arr.splice(i, 1)
    }
  }
  return arr
}
fn(str)


const str = 'asbbbsbs'
let newStr = ''
for (let i = 0; i < str.length; i++){
    if(str[i] !== str[i+1]) {
        newStr += str[i]    }
}

变形>>

删除字符串中的所有相邻重复项

输入:"abbaca"
输出:"ca"
解释:
例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 "aaca",其中又只有 "aa" 可以执行重复项删除操作,所以最后的字符串为 "ca"

解题思路: 遍历字符串,依次入栈,入栈时判断与栈头元素是否一致,如果一致,即这两个元素相同相邻,则需要将栈头元素出栈,并且当前元素也无需入栈

解题步骤: 遍历字符串,取出栈头字符,判断当前字符与栈头字符是否一致

  • 不一致,栈头字符进栈,当前字符进栈
  • 一致,即栈头字符与当前字符相同相邻,都不需要进栈,直接进入下次遍历即可

遍历完成后,返回栈中字符串

var removeDuplicates = function(S) {
    let stack = []
    for(c of S) {
        let prev = stack.pop()
        if(prev !== c) {
            stack.push(prev)
            stack.push(c)
        }
    }
    return stack.join('')
};

时间复杂度:O(n) 空间复杂度:O(n)

输出执行顺序

try {
  console.log(1);
  setTimeout(() => {
    console.log(2);
  }, 100);
  setTimeout(() => {
    console.log(3);
    throw Error(5);
  });
  console.log(4);
} catch (e) {
  console.log(e);
}

更多:segmentfault.com/q/101000001…

this指向问题

const obj = {
  foo: function() {
    console.log(this.a)
  },
  a: 1
}

let foo = obj.foo
let a = 2   -> 改为 var a = 2 呢?

obj.foo()

foo() 

let 与 const 不同于 var 的另一个方面是在全局作用域上的表现。当在全局作用域上使用 var 时,它会创建一个新的全局变量,并成为全局对象(在浏览器中是 window )的一 个属性。这意味着使用 var 可能会无意覆盖一个已有的全局属性

全局作用域上使用 let 或 const ,虽然在全局作用域上会创建新的绑定,但不会有任何属性被添加到全局对象上。这也就意味着你不能使用 let 或 const 来覆盖一个全 局变量,你只能将其屏蔽 

二面  2020.06.09

React和Vue对比,各自的优劣

React的事件合成机制,为什么要把事件绑定在document上和直接绑定在Dom上有什么区别?

在react的click方法里执行setState和在willMount里执行setState有什么区别?

blog.csdn.net/weixin_4223…

用redux干什么?redux的state里的数据变化了为什么组件会render?(connect方法里做了什么?)

观察者模式和发布订阅模式有什么区别?(一对一,一对多)

React hooks有什么好用的地方?

了解http缓存吗?服务器如何判断协商缓存是否有效?如果服务器资源更新了但是客户端是强缓存的,怎么更新资源?

www.cnblogs.com/SallyShan/p…

项目怎么做seo的?