Web前端新手应该知道的JavaScript开发技巧有哪些?

JavaScript012

Web前端新手应该知道的JavaScript开发技巧有哪些?,第1张

今天小编要跟大家分享的文章是关于Web前端新手应该知道的JavaScript开发技巧有哪些?熟悉Web前端的小伙伴都知道,Javascript

的很多扩展的特性是的它变得更加的犀利,同时也给予程序员机会创建更漂亮并且更让用户喜欢的网站。

尽管很多的开发人员都乐于颂扬javascript,但是仍旧有人看到它的阴暗面。

使用很多javascript代码的Web页面会加载很慢,过多的使用javascript使得网页丑陋和拖沓。很快如何有效地使用

javascript成为一个非常火热的话题。

今天小编就为Web前端新手准备了这篇JavaScript开发技巧,希望能够对你有所帮助,下面我们一起来看一看吧!

1、尽可能的保持代码简洁

可能大家都听到过了N遍这个代码简洁问题了。作为一个开发人员你可能在你的代码开发过程中使用了很多次,但千万不要在js开发中忘记这点。

§尽量在开发模式中添加注释和空格,这样保持代码的可读性

§在发布到产品环境前请将空格和注释都删除,并且尽量缩写变量和方法名

§使用第三方工具帮助你实现压缩javascript。

2、思考后再修改prototypes

添加新的属性到对象prototype中是导致脚本出错的常见原因。

yourObject.prototype.anotherFunction='Hello'

yourObject.prototype.anotherMethod=function(){...}

在上面代码中,所有的变量都会被影响,因为他们都继承于yourObject。这样的使用会导致意想不到的行为。所以建议在使用完后删除类似的修改。

yourObject.prototype.anotherFunction='Hello'

yourObject.prototype.anotherMethod=function(){}

test.anotherMethod()

deleteyourObject.prototype.anotherFunction='Hello'

deleteyourObject.prototype.anotherMethod=function(){}

3、DebugJavascript代码

即使最好的开发人员都会犯错。为了最大化的减少类似错误,请在你的debugger中运行你的代码,确认你没有遇到任何细微的错误。

4、避免Eval

你的JS在没有eval方法的时候也可以很好的工作。eval允许访问javascript编译器。如果一个字符串作为参数传递到

eval,那么它的结果可以被执行。

这会很大的降低代码的性能。尽量避免在产品环境中使用eval。

5、最小化DOM访问

DOM是最复杂的API,会使得代码执行过程变慢。有时候Web页面可能没有加载或者加载不完整。最好避免DOM。

6、在使用javascript类库之前先学习javascript

互联网充斥着很多的javascript类库,很多程序员都往往使用js类库而不理解负面影响。强烈建议你在使用第三方类库之前学习基本的JS

代码,否则,你就准备着倒霉吧。

7、不要用“SetTimeOut”和“Setinterval”方法来作为“Eval”的备选

setTimeOut("document.getID('value')",3000)

在以上代码中document.getID(‘value’)在setTimeOut方法中被作为字符串来处理。这类似于eval

方法,在每个代码执行中来执行一个字符串,因此会降低性能,因此,建议在这些方法中传递一个方法。

setTimeOut(yourFunction,3000)

8、[]比newArray()更好

一个常犯的错误在于使用当需要数组的时候使用一个对象或者该使用对象的时候使用一个数组。但是使用原则很简单:

“当属性名称是小的连续整数,你应该使用数组。否则,使用一个对象”_DouglasCrockford,JavaScript:Good

Parts的作者.

建议:

vara=['1A','2B']

避免:

vara=newArray()

a[0]="1A"

a[1]="2B"

9、尽量不要多次使用var

在初始每一个变量的时候,程序员都习惯使用var关键字。相反,建议你使用逗号来避免多余的关键字,并且减少代码体积。如下:

varvariableOne='string1',

variableTwo='string2',

variableThree='string3'

10、不要忽略分号“”

这往往是大家花费数个小时进行debug的原因之一。

我很确信你肯定也在其它的文章中阅读过以上相关的内容,但是大家可能往往都忽略了很多基本的规则。你是不是也曾经忽略过分号。是不是也遇到过eval

关键字问题导致性能问题?

以上就是小编今天为大家分享的关于Web前端新手应该知道的JavaScript

开发技巧有哪些?的文章,希望本篇文章能够对刚刚接触Web前端行业的新手们有所帮助。想要了解更多Web前端知识记得关注北大青鸟Web前端培训官网!

*声明:内容与图片均来源于网络(部分内容有修改),版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

是主流开发模式。

1、JS接口为主流App开发模式NativeApp,传统原生APP开发模式。

2、Android基于Java语言,底层调用Google的API,iOS基于OC或者Swift语言,底层调用ios官方提供的API。

3、WebApp,网站开发模式。将页面部署在服务器上,用户使用浏览器访问,一般泛指SPA(SinglePageApplication)模式开发出的网站。

4、HybridApp,半Native半web混合开发模式。

5、介于WebApp、NativeApp两者之间,兼具Native良好交互体验和Web页跨平台开发优势。

6、ReactNativeApp用JS写出的原生应用。

1.不要首先设计好你的页面,然后再通过DOM操作去修改它

在jQuery中,你首先设计了一个page,然后再去动态修改它的内容,这是因为jQuery被设计用来进行扩展并在这个前提下大幅度地增加和修改内容,但是在angularjs中,你必须在心中先设计好你的架构,

从一开始,你就要摒弃“我拥有一个DOM元素并且想让它去做某件事”,代之为“需要完成什么任务,然后接着设计你的应用,最后再去设计你的视图view层”。

2.不要使用angularjs去扩展jQuery

相应地,不要存在说让jQuery去干某些事情,然后在此基础上添加angularjs的功能让它去管理model以及controller的想法。所以一般不推荐AngularJS开发新手同时使用jQuery,至少在他们还没有适应AngularJS的开发模式之前不会去推荐这样做,但是当你真正开始适应angularjs 的方式之后,你会发觉这是一件很诱人的事情。

曾经看到过很多开发者采用将150到200行代码的jQuery插件利用angularjs的回调以及$apply方法封装起来,这种方式使得代码看起来极其复杂,但是实际上他们让这些插件跑起来了!问题在于,在大部分情况下jQuery插件能够用angularjs进行重写,并且可能只会使用很少量的代码,同时这种重写使得代码很直观且易于理解,这显然好过于将jQuery代码直接做封装。

所以最后说,当你遇见问题的时候,首先要以angularjs的思维进行思考,如果找不到解决方案,可以求助于社区,如果说没有人能够给出一个简单的方案,那么才考虑使用jQuery,不要让jQuery成为你的拐杖,否则你永远掌握不了AngularJS。

3.要以架构为中心进行思考

首先你要知道单页应用属于web应用,它们不是传统的多网页网站,所以要同时作为一个服务端和客户端开发者的思维进行思考,需要思考如何将我们的应用分为独立的,可扩展的以及可测试的部分。

数据绑定

这是到目前为止AngularJS最令人瞩目的特性了,在数据绑定方面它舍弃了对DOM的操作方式,而这一切都是由AngularJS来自动更新视图,你不必写操作dom的代码,在jQuery中,常常按照响应事件并修改视图

区别model层

在jQuery中,DOM类似于一种model,但是在AngularJS中,拥有不同于jQuery中的model层以便可以以任何我们想要的方式去管理它,它是完全独立于视图之外的。这种方式是有助于进行数据绑定并且可以保持对分离的关注,而且可以具备更好的可测试性。

关注点分离

以上所讲都和这个总体的话题相关:让你关注分离,你的视图层显示记录,你的model层代表数据,你还有个服务层用来执行这些可复用的任务。你使用directive来执行dom操作并扩展你的视图,并将它和controller连接起来,这也就是在其他方面提到的有关于增强可测试性的原因。

依赖注入

帮助解决关注点分离的是依赖注入(DI),如果你是一个服务端开发者(Java或者PHP),你可能已经很熟悉这个概念了,但是如果你是从事客户端开发的,你会觉得这个概念可能有些多余和纯属追求时髦,但是实际上不是这样。

从广义的角度讲,DI意味着你可以自由地声明组件然后从这些组件中进行实例化,这是理所当然的。你不必知道加载顺序,文件位置等诸如此类的事情,这种魔力不是能够立即看到,但是会给出一个例子:测试。

说在应用中,需要一个依赖于应用状态和本地存储的服务用来通过一个rest API来执行服务端存储,当我们测试我们的controller时,不必和服务端进行通信,毕竟只是在测试controller而已。仅添加一个与我们最初组件相同的mock服务,注入器能够确保controller获得一个虚拟的服务,controller自身不必也不需要了解这种差异。

4.以测试驱动的开发

这部分是一个架构的第三部分,但是他是很重要的,以至于需要将它放在最重要的位置。

在所有见过的,用过的以及写过的jQuery插件中,有多少具有一套测试组件呢?其实并不多,这是因为jQuery在测试上不易控制,但是AngularJS却与此不同。

在jQuery中,测试的唯一方法是使用一个demo页去创建一个独立组件来使得的测试可以执行dom操作。接下来我们必须开发一个独立的组件然后将它集成到的应用中来,这是多不方便啊!在很多情况下,当使用jQuery开发实际上是做了很多重复开发而不是以测试驱动的开发,

但是在AngularJS中我们可以关注分离点,所以可以做一些测试驱动的开发。

5.从概念上讲,指令不是打包的jQuery

你常常听说,dom操作只能在指令中,这是必须的,你必须严肃对待。

深入讨论,

某些指令仅仅是装饰视图(例如ngClass),因此有时候直接操作dom是可以的,但是当一个指令类似于一个小物件并且拥有自己的模板,那么它应该当做一个分离的关注点,这就是说,它的模板需要和link中的执行逻辑以及其他controller函数分离开。

AngularJS拥有一整套的工具可以是这种分离更简单,使用ngClass指令,可以动态地更新class,使用ngBind可以进行双向数据绑定,使用ngShow和ngHide 我们

可以采用编程的形式显示和隐藏一个元素,也包括自己写的很多指令。换句话说,可以不用Dom操作而完成所有工作,dom操作越少,指令越容易测试,越容易指定他们的style属性,就越容易在将来改变他们,那么他们就越容易复用和分发。

看过很多AngularJS新手使用指令封装一大串 jQuery代码,换句话说,既然不能在controller里面进行dom操作,那么我可以将他放在指令中,虽然这相对于直接操作dom好很多,但是任然是错误的。

看看在上面的记录,即使我们将其放在一个指令中,任然需要以Angular的方式去操作它,这种方式不执行dom操作!在很多时候dom操作是需要的,但是这种情况比你想的要少得多。当需要做dom操作的时候先问问自己这里是否必须这样做,这才是一种更好的方式。

总结

不要总使用jquery ,甚至不要去引用它,它会阻止你前进,当回到这个问题—你知道你怎么在AngularJS中以jquery方式解决问题,但是当你使用诸如$等选择器时,你要想想它们实际上是禁锢了AngularJS,如果你不知道怎么不用jQuery实现,那么去请教别人,一次一次去问,最好的方式是不需要使用jQuery,使用jQuery只会导致你的工作量提升。