一、JQuery选择器
在一个HTMLDOM
树中,进行一个比较复杂的元素选择,不包含某些文字的带有某某类名的元素的邻居的父元素的然后怎么做?写一个很复杂的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权威指南》。当时我是把中文的读去再去读英文,把英文的读完去找图解,才感觉到把这一点理解清楚的。
五、HTML/CSSDOCTYPE
曾经项目中遇到这样一个问题,用其他浏览器打开页面是好的,唯独是IE8打开时出奇地慢。我注意到IE8打开时慢但CPU消耗并不高,只是网页空白很久没渲染出来,可以排除JS算法上的问题。
经过细心研读代码发现,有人把一部分script、link等标签放到了DOCTYPE的前面。
DOCTYPE是用来告诉浏览器解释整个文档的一套法则的,一定要放在HTML部分的最前面,先有script标签,那就意味着浏览器已经开始解释了,后面再有DOCTYPE也是没有意义的了。把DOCTYPE放到HTML部分的最前面,一开始提及的问题就解决了。
以上就是小编今天为大家分享的关于Web前端新手应该注意的常见错误有哪些的文章,希望本篇文章能够对正在从事Web前端工作的小伙伴们有所帮助。想要了解更多Web前端知识记得关注北大青鸟Web培训官网。最后祝愿小伙伴们工作顺利!
web前端面临的挑战:1.兼容性:市场上浏览器种类非常多,IE、Firefox、Chrome、Opera、还有众多的IE加壳浏览器,类似搜狗、傲游、360,再加上这些浏览器的移动终端版本。需要有Web标准,前端的知识大部分通用于各个浏览器,但还是会有历史遗留问题,不同版本的浏览器有不同的问题。
2.交互复杂度:和目前UI交互的要求比,浏览器引擎给我们的接口太低级了,稍复杂一点的UI效果,都要前端自己利用CSS和DOM去组合创造,前端的效果是通过CSS、DOM、JS三者配合起来呈现出来的,脱了任何一个技术都寸步难行,时刻要同时考虑多个方向的知识点。
3.代码可维护性:复杂度的提升直接影响代码的维护性。JS/CSS/HTML代码生命周期越来越长,也就越来越需要从代码质量、架构和工具上保证他们的可维护性。
4.技术更新快:前端技术更新速度十分快,html5,css3,nodejs,commonjs,按需加载等都是近几年出来的,我们必须与时俱进,不断加强技术水平,不断学习,不然就会被淘汰。
5.开发者思路:真正的前端开发挑战,还在于开发者的思路。
想要了解更多有关web前端的相关信息,推荐咨询千锋教育。千锋教育成立教研学科中心,推出贴近企业需求的线下技能培训课程。采用全程面授高品质、高体验培养模式,学科大纲紧跟企业需求,拥有国内一体化教学管理及学员服务,在职业教育发展道路上不断探索前行。
opacity本身就会改变内部元素的透明度
如果你希望实现:改变背景图片不透明度为0.5,但是文字的透明度也改变
那么,第一,针对图片进行处理,将JPG的图片拖动到PS当中,然后调整图层的半透明度为50%,之后存储为“png”格式即可
第二,使用定位来实现,将文字层定位到背景层上面
<div><div>放背景的</div>
<div>放内容的</div>
</div>
父级div设置相对定位,子级div设置绝对定位即可
关于定位方面的知识,可详见->position定位