编程中的逻辑陷阱

记得在前端面试中,会被问道遇到最困难的问题是什么,我总是怕自己说的问题不够难,其实经常困扰我的反而是一些小问题,就因为足够小,所以每次检查的时候都不觉得这里有问题,从而忽视。

这次的任务是给浏览器插件写插件,这个程序设计了一个流程,用户可以通过模块来的组建,其中有一个是 JavaScript 模块,流程走到这会执行 js 代码,需要在本地编辑好后再复制过去。

下面的例子都是基于上述场景的

浏览器自动切换 iframe 上下文

通过开发者工具检查当前元素,测试好后就通过插件执行,却提示获取不到,我首先想到的是可能插件获取 DOM 元素有特定的规则,问了一下有没有遇见在开发者工具能获取,在插件之中却没法获取的情况,并没有受到什么启发。

反正我当时想了很多,也尝试了下,后来才意识到其实不可能这么复杂,又仔细检查了元素的路径,发现了一层 iframe...,而且这层 iframe 单独打开和之前是没有区别的,就是你很难想象这么简单的一个页面,会嵌套一层 iframe。

而且由于开发者工具在检查元素时会自动切换 iframe 上下文,所以是可以查询的到,但是同样的代码通过 JS 来运行就查不到了。

map 方法与 table

这个是要用原生 js 组装个执行结果反馈页面,涉及到了 Table,

用户那边每次执行,表格上面就会多一行的逗号,而我这边却没有,我在想会不会是编译的问题,自己研究下无果后,一个同事提醒我问下插件开发员人员,倒是提醒了我,会不会是数据原因,因为她看八行数据有 7 个逗号。我刚想反驳,因为我的账号是有一个数据的,也没有逗号,我立马有删除了,因为我只有一条数据,自己又造了一条数据,果然有了一个逗号。

原来是在模板字符串中有了 map 方法,但是没有使用 join,序列化的时候就会加逗号,而经常使用 React 已经忽略了这一点,而且这些逗号是一起跑到表格前面,我一直觉得就是表格前面的代码造成的。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 爬虫的基础知识 爬虫的定义 只要是浏览器可以做的事情,原则上,爬虫都可以帮助我们做,即:浏览器不能够做到的,爬虫也...
    jxvl假装阅读 964评论 0 1
  • HTML 5 HTML5概述 因特网上的信息是以网页的形式展示给用户的,因此网页是网络信息传递的载体。网页文件是用...
    阿啊阿吖丁阅读 4,105评论 0 0
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,820评论 1 45
  • 基础技能 1.前端开发 技术知识点: HTML: 标签 页面标签:head(头部) body(正文) title(...
    气质有毒_阅读 974评论 0 2
  • 五十三:请解释 JavaScript 中 this 是如何工作的。1.方法调用模式当一个函数被保存为一个对象的属性...
    Arno_z阅读 603评论 0 2