偶尔遇到的令人蛋碎的坑

大坑汇总

如果有面试官问遇到过什么难解决的问题,解决掉的就不难,难得在于无从下手,完全找不到北的奇葩问题。

工作中总是能遇见很多神奇的坑,这也是为什么如果自己有一只小黄鸭,跟他讲你的实现原理,自然就明白了自己的错误。

  1. 引入了两个jquery或者zepto,找问题找了N久,最后发现的时候,内心是充满枣泥马的。
  2. 公司项目,需要在公司域名下才能访问数据。本地ajax服务一直报错。
  3. 测试环境和预发环境都报错,但是线上可以。这个问题是后台的问题,无奈。
  4. 公司某插件调用时,还有另一个插件,与之冲突了。相当于两个插件,一个包含另一个,但调用方法不同。
  5. 在插件的通信过程如果是异步加载,需要设置个定时器,判断请求到数据才进行下一步操作,也可以用promise,原理相同。
  6. jsonp请求没有sync的参数,所以jsonp一定是异步的。不能设置为false。jsonp是用script创建的请求,与json完全不同。这只是一种跨域的黑科技而已。

关于异步
常在ajax调用时必须要在success后才能操作dom,不然会是一堆undefined。这是每个前端都会遇到的坑。

  1. 定时器判定
  2. setTimeout(function(){foo()},0)
  3. Promise (es6 或者jquery的then函数)