干货|前端程序员容易出错的基础知识

新闻
web全栈是目前比较流行的语言,因为前端较其他语言相比,简单好学,而且现在的互联网公司几乎缺少不了web前端开发,行业的需求致使大量的人转型前端,对于刚学前端的人来讲,他们缺乏开发经验,在项目开发中容易出错,为了使大家少走弯路,小编综合一批前端程序员,收集了一些最常见的错误,供大家学习,避免掉坑。

web全栈是目前比较流行的语言,因为前端较其他语言相比,简单好学,而且现在的互联网公司几乎缺少不了web前端开发,行业的需求致使大量的人转型前端,对于刚学前端的人来讲,他们缺乏开发经验,在项目开发中容易出错,为了使大家少走弯路,小编综合一批前端程序员,收集了一些最常见的错误,供大家学习,避免掉坑。

[[242021]]

一、JQuery 选择器

在一个HTML DOM 树中,进行一个比较复杂的元素选择,不包含某些文字的带有某某类名的元素的邻居的父元素的……然后怎么做?写一个很复杂的jQuery选择器?打住。jquery选择器原理是用正则表达式去分解你的选择器字符串(这一部分叫做Sizzle),然后再用内置的一些遍历函数如prev,next等(其实这些函数也是基于DOM提供的方法),去找到你想要的元素。我会不去盲目地进行Sizzle的语义歧义测试,而是自己根据自己的逻辑去用prev,next等去找到自己的元素;而且退一万步来说,我也会尽量避免使用复杂的选择器(之前的方案也有提及),单位个元素用ID,多个元素用类,绝对高效准确。

二、基础数据结构与算法

现在有两个不同的JSON,比较复杂,可以参考这里的DEMO中返回的JSON。要比较它们的差异,除了用现成的工具如beyond compare以外,如果我们的机器上没有安装这个工具,能如何较快解决?作为一个程序员,一个个对比是不可行的,对比完也不会有什么收获。我会把之放进Excel中(如果你机器连这个都没有,那忽视我),先排序,再用二分法去快速定位找到有差异的JSON属性,即使是1024个字段的大数据,也最多10次的定位即可找到。其实算法这东西,并不是给你一道题目然后把死记下来的内容背出来,而是当你遇到相应的情景时,能想到用这个方法去解决。

三、HTTP协议

现在很多项目中都是用ajax去提交JSON到后台了,原始的那种HTTP提交已经比较少见(至少在我的项目中是这样),但是我们也不能忘记设置form的method、action的原始提交方式,因为这个才是表单提交的原型,有助于我们理解HTTP协议,例如POST和GET的区别,理解数据是怎么样从前端到达后端的,又是怎么样从后端返回到前端。当你理解了这个,就可以更好地跟后端进行沟通,遇到数据上的问题也能较快地定位解决。

四、javascript 作用域

学过好几种的编程语言,作用域问题都是老生常谈了。在javascript中更是有函数的作用域这一基础知识。关于这个,推荐《javascript权威指南》。当时我是把中文的读去再去读英文,把英文的读完去找图解,才感觉到把这一点理解清楚的。

[[242022]]

五、HTML/CSS DOCTYPE

曾经项目中遇到这样一个问题,用其他浏览器打开页面是好的,唯独是IE8打开时出奇地慢。我注意到IE8打开时慢但CPU消耗并不高,只是网页空白很久没渲染出来,可以排除JS算法上的问题。经过细心研读代码发现,有人把一部分script、 link等标签放到了DOCTYPE的前面。DOCTYPE是用来告诉浏览器解释整个文档的一套法则的,一定要放在HTML部分的最前面,先有script标签,那就意味着浏览器已经开始解释了,后面再有DOCTYPE也是没有意义的了。把DOCTYPE放到HTML部分的最前面,一开始提及的问题就解决了。

责任编辑:武晓燕 来源: 今日头条
相关推荐

2018-07-20 11:22:03

程序员基础知识

2009-05-05 09:45:56

程序员职场成长过程

2018-10-31 14:44:13

VLANN基础知识

2015-04-21 09:28:29

2019-07-15 12:40:02

Linux基础知识程序员

2021-03-02 07:51:17

前端开发技术热点

2021-03-03 08:04:44

前端开发技术热点

2021-03-01 08:03:16

前端开发技术热点

2022-05-10 14:11:05

网络安全网络犯罪

2010-01-19 10:16:40

C++程序

2009-11-23 15:22:16

2015-07-15 16:53:55

IP游戏基础知识

2019-03-29 14:10:35

无监督学习机器学习人工智能

2009-07-15 09:29:24

Java程序员

2023-07-04 07:31:06

MapReduce数据处理编程模型

2015-10-15 09:38:21

程序员发福

2019-08-12 10:27:34

前端程序员网络

2017-12-13 11:35:42

程序员面试技巧

2021-11-05 15:31:01

UbuntuLinux

2023-07-17 13:21:30

程序员模型
点赞
收藏

51CTO技术栈公众号