怎么提高javascript编程水平?不管是什么语言,能实际运用的才是王道,技术靠练出来的。也就是说多做项目,你才能提高。水平是建立在需求之上的。没有需求就没有水平。只有有需求,你
怎么提高Javascript编程水平?
不管是什么语言,能实际运用的才是王道,技术靠练出来的。也就是说多做项目,你才能提高。
水平是建立在需求之上的。
没有需求就没有水平。只有有需求,你才能知道自己应该往哪个方向去走。
等你觉得市面上无非就那几种表现形式,那你可以创新。创新要考虑的不是技术如何厉害,而是用户用起来方不方便。编程语言只是用来实现某些目的的一种工具而已。
总而言之,给自己找一些自己没有接触过的功能去玩,如果都玩会了那就想想怎么提高效率。怎么样能在原来的基础上少写几行代码又能达到之前的目的,甚至更好。
怎么学好js?
页面要想实现好的互动性Java是必不可少的,特别是在一些网站专题页面对于互动性要求更高,中级和高级web前端工程师js是必须要掌握的,下面为大家详细介绍一下Java。
虽然仍有一些人对 Java 的批评特别是对Java 用于后端任务心存疑虑,但这些并不妨碍Java成为广泛用于客户端的语言,成为前端开发必不可缺少的工具。
Java和html一样都是客户端(浏览器执行)的语言,通常Java脚本是通过嵌入在HTML中来实现功能的。
下面为大家介绍java的特点:
1、java是一种解释性脚本语言不进行预编译,而c、c++等编程语言都是先编译后执行,java是逐行解释运行的。
2、基于对象的语言,它不仅可以创建对象,也能使用现有的对象。
3、以嵌入HTML页面,也可写成单独的js文件。
4、多平台运行,在大部分浏览器浏览器的支持下,可以在多种平台下运行比如Android、iOS等。
那么,怎么才能在js领域内学的轻松甚至游刃有余呢?我总结了一些实战意义的js学习经验:
首先要紧紧抓住它的地位
时刻都不能忘记,否则很容易犯“一叶障目不见泰山”的错误。
不要学了很久就知道js是编程语言,就是写代码、而且特点就是乱七八糟就完了,那样是学不好js的。
要时时抓住它的地位,确切的说是它在整个WEB中的地位:它属于前端的核心,主要用来操控和重新调整DOM,通过修改DOM结构,从而来达到修改页面效果的目的。
要用这个中心思想去指导后续的一切js的学习,并且形成条件反射。
要有一条清晰的学习路线
这个只能是过来人给你提供参考了。
我的学习路线如下:
A:js基础部分,如:定义变量、函数、数组、字符串等的处理,内置函数、内置对象等。
B:js面向过程编程思想,封装出各个函数,试着用这些去做一些常见的小功能,如:选项卡,自定义多选按钮,自定义播放器,3D幻灯片;
C:js面向对象编程思想,试着去封装一些你自己的对象,提供出有意义的接口出来;
D:学了上述的内容,然后学常用的库,这里必须学jquery;
E:学基于Jquery之上的常见插件,如:bootstrap,Layer,富文本编辑器等。
F:综合应用上面的多种库写实际项目的模板,多写几套。
注意学习方法
我的学习方法总结如下:
A:多买几本国外的js书籍,不要购买那种20天精通之类的书。
否则你是很难学通的,更怕的是:本来你买本好书自学3个月可能学会的,它们硬是能折腾你两年......
书籍推荐(仅供参考)
《Java DOM编程艺术》
《Java权威指南》
《java DOM高级程序设计》
《Java设计模式》
《锋利的jquery》
争取把书上的功能都自己练习多次,不是一次。书读百篇,其义自见。
B:从多角度去学习和领悟
充分调动你所学的东西,从多角度的去做某一功能,如:以前你是从面向过程角度做的,
现在改为从面向对象的角度再来做,或者继续做成可以直接使用的插件,提供属性、方法等出来。争取让你做的这个功能逐渐能使用到实际项目中来。
这样的好处:既综合应用了你的所学,又能有实际意义。
C:一定不要好高骛远
不要放过哪怕很小的动手机会,如做一个选项卡。
千万不要认为有了类似的甚至更好的插件就不需要自己写了,知识是别人的,不是你的,你即使会用了也对你的技术技能水平没有任何提升。
你要多问自己,如果要我来做,我该怎么做?
D:脚踏实地的同时,也不要脱离实际
多看现在网上已经出现的效果好的功能,让它去激发你的学习热情,尽量去学着模拟,调动你的知识去和实际相结合。
E:多写总结
这种总结不但包括源代码、显示效果截图,还应该很容易犯的错误和对应的解决方法以及最后一两句精简的结论性语句。
对自己写的总结不是写完了就了事了,要多回顾,多改进,多精简。到做项目的时候,应该是看里面的一两句话就知道是讲什么了,而不要再去看长篇大论了。
F:构建知识导图
这个可以让你越学越清晰,比如:http://www.phpkhbd.com/sky.html,你可以按你喜欢的任何形式去做,只要自己印象深刻就行。
注意:知识导图也应该是经常修改、修正,让它更合理、更清晰。
注意事项
A:充分利用一切手段
很多人总感觉时间紧,没有大块的时间学习。我要说你不会学了,你不应该只是抱怨,而是要利用一切手段去学习,要知道,不一定只有看书才叫学习。
当你冷静的坐在某个地方,思考了一下,总结了一下,你也都叫学习,但凡有灵感,就可以记录下来,比如:记录在手机上,等方便了再记录在专门的地方。这都叫学习。
B:贵在坚持
要沉的下心。
没有一蹴而就的成功,否则那也不是成功,只能叫“侥幸”。
不但要老老实实的把每个功能都试着去实现,而且要精益求精的不断去修正,这个过程是漫长的,也是考验一个人是否是人才的标准。
C:注意培养信心
此时的你,不适合一来就看很复杂很炫的网页效果的源代码,也不适合一来就学jquery,angular,vue,bootstrap这些东西。
这些内容包含了很多深奥的知识在里面,在没有任何基础的情况下直接学这些,会严重打击你的自信心。
而此时你是弱小的,你需要的是培养信心,而不是反过来,否则结局很可能是“夭折”,离学有所成也就遥遥无期了。
D:多跟学的好的过来人学习
站在巨人的肩上,才能看的更远。
E:不要浪费在工具的不停选择上
js的编辑工具很多,如果无从下手,建议使用:sublime,或者使用Hbuilder;很多公司里的技术人员都用这些,你直接用这个也减少了和别人之间的沟通问题。
我也是用这个,感觉很好。
总结
感觉js学起来“杂而乱”的原因是因为你太“聪明”了,一开始就管的太宽,利害得失也计算的太精细。
要求太完美则心里承受能力下降,很容易出现“障”。此时,你应该“笨”一些,不要考利那么长远,“傻人有傻福”,只要做好今天就够了。
一些不合理的学习方法和心态也让你迷失了自我:如:心浮气躁、眼高手低、好高骛远,这些都会让你在“乱七八糟”的js面前深陷迷雾、不能自拔。
此时,你应该重新定位自己的位置,重新去认识js,放下包袱,方能轻松上阵。把杯子先倒空,才能灌新水......
其实,js是前端的核心。
影响越来越深的互联网+会渴求越来越多的js人才,只有经历过真正刻骨铭心的学习经历,才能造就出赢得未来的真正精英。
如何才能学好Javascript?
我的秘诀只有三条:(1)学习掌握Javascript的基本语法。这个容易办到,这类书太多了,建议你不要读太厚的书,也不要看没有例子的书。
照例子敲,执行一下看一下效果,分析其关键点所在。
看例子不会让你感觉无聊!或者你干粹就看一下《Javascript 语言参考》中文版,网上到处可以下载到,你要找不到,你可以留个邮箱,我给你发过去。尤其是原型的概念,很关键哟^_^,可以看一下这篇文章http://gis8.blog.sohu.com/62504760.html(2)利用成熟的开源,学习其函数库的使用方法。这点很重要,在以后的工作中,许多东西不需要自己从低层写的,尤其是Javascript这种不太好调试,也不太好找出语法错误的东西。推荐你学习一下Prototype,这个可是一个好东西呀!学会使用它,你肯定比一般人高一筹。
(3)你要想再深入学习,就读一些开源的高手的例子吧!读多了你自然什么都会了!最后推荐你使用一些插件如JSEclipse等来检查语法。
想成为 Javascript 高手,有没有好的学习路线和方法
学习Javascript的最佳方法分享学习新的东西是件可怕的事。对我来说,掌握一项新技能最大的问题是,我不知道自己懂什么。
鉴于此,定个计划,学习你感兴趣的东西应该会有用。
这篇文章的主旨就是:你为学习Javascript 制定的蓝图、路线、行动计划!你不必担心找不到最好的资源,先整理些好的资源,再确定下一步该学什么。遵循它,一步一步来。任务0:了解什么是Javascript在你真正开始学习Javascript 之前,花一分钟了解一下什么是Javascript,它有哪些功能。 Javascript不是jQuery、Flash或Java。
与它们不同,它是一种独立的编程语言。 Javascript 是浏览器语言(尽管现在不完全是)。主要目的是给静态页面增加交互性。
在浏览器里,它不会为你更换PHP或Ruby,也不会更改你的HTML或CSS;你可以把它们串在一起使用。另外,它没有你想的那么难学。 补充说明:你应该听过jQuery,它可能是被使用最广泛的Javascript 库。
也许你还听说过其他比较流行的Javascript 框架,比如Mootools,,YUI,Dojo 等等。可以将它们统一看做Javascript辅助工具集;当你使用它们的时候,你还在写Javascript,但都是些很抽象的Javascript。它会让你事半功倍。
“你甚至可能听到有人说,你应该先学jQuery(或其他库)再学Javascript。我很尊重他们但完全不同意这种说法。先把Javascript 学好再用其他库,你会发现你会做的更好;结果就是,你会编写更好的Javascript。”任务1:通过Codecademy.com站点的课程来学习Codecademy是一个相对较新的网站,其广告语是“最易学的编码方法”。
目前,该网站仅有两个课程,“初级编程”和“Javascript快速入门指南”。沉浸在Javascript 中是种不错的体验。跟 Try Ruby 练习非常相似,你会学到简短的课程、在浏览器里编码,然后看结果。得到全部分数、打开成就徽章。
(Ruby,一种为简单快捷的面向对象编程(面向对象程序设计)而创的脚本语言。) 如果你已熟悉了另一种编程语言,你也许可以先学“Javascript快速入门指南”;如果这是您第一次编程(HTML和CSS除外),你会发现“初级编程”课程相当有用。Codecademy是一家免费网站,但需要注册。任务2:appendTo 截屏方法appendTo 视频有一套特别适合初学者的截屏方法。
如果你想用正确(容易)的方法学习Javascript,学习这些课程绝对管用。视觉训练总是有效的! “用我们提供的点播内容、务实的训练解决方案来提升自己的技能。无需注册、无需绑定、绝不忽悠。
”任务3:阅读一本好的关于Javascript 的说明书一旦你通过Codecademy上的课程来学习,你就会想搞到一本关于Javascript的详细说明书–介绍所有的类型、运算符、控件架构等等。 如果可以的话,我来介绍几个好的说明书: 《再说Javascript》 – 这本说明书可在Mozilla开发者网络上找到,语言公正。这本书内容很丰富,有很多代码实例和文段介绍。
《Eloquent Javascript》 – 该书由Marijn Haverbeke 编写,可免费在线阅读,如果你想弄个硬拷贝可以上亚马逊网站购买。它比MDN说明更详细,因为它不仅涵盖了Javascript 语言,而且包括编码风格以及在浏览器里使用Javascript。当然,“eloquent”并非言过其实。(eloquent - 雄辩的、口若悬河的) 《Getting Good with Javascript》 – 没错,这本书是我写的,但是我介绍这本书是另有原因的。
它跟我在前面介绍的两本说明不同;在这本书里我只介绍了编程人员快速掌握编程技巧所需要的部分。此外,它还附带超过6个小时的截屏视频,因此,想要就去看看吧。(当然,这本不是免费的。
)任务4:安装、学习Firebug(或开发人员工具)一旦你开始在浏览器里使用Javascript,就需要安装Firebug并熟悉它的性能。Firebug是一款用于Firefox的插件,它能帮你创建和调试网页:对网页开发者来说,它就像外科医生的‘手术刀'。如果你不用Firefox?喜欢Safari 或者Chrome怎么办?没问题:可以查找类似Firebug的内置开发人员工具。 “你可以在Mac地址栏里按选项+命令+I 或者按快捷键Control + Shift + I ,来打开设计工具面板。
” 通过打开你选的工具,只需在你喜欢的其中一个网站上点击点击,你就会学到很多东西。这里有一些能加速你学习的资源:FirebugFirebug网站和维基百科Firebug的CSS-技巧说明你应该在Nettuts+上使用Firebug的10大理由。Firebug:从白带到黑带,Tuts+ Marketplace 网站(http://marketplace.tutsplus.com/item/firebug-white-to-black-belt/118795)设计工具设计工具网站Google I/O 2011:由Paul Irish重组的浏览器设计工具Google 浏览器设计工具:Paul Irish 的快速开发12技巧任务5:读一本有关Javascript的书籍现在你已经熟悉了些基础知识,但是还有很多东西要学。
尽管我推荐的一些书可能会让你‘破产',但你会发现任何时候我都会推荐4本高质量的书:前两本是一般的、较深入的Javascript 资源,它们会让你从简介到较深层次逐步理解;当然,简介里会有一些重叠的说明,但不多:刚好让你看起来很舒服。(注:虽然这些书在亚马逊网站能买到,我已经链接了出版商的网站,因此,你能看看范例章节。) 《Javascript高级程序设计》- Nicolas C. Zakas 编写,这本书涵盖了它能涵盖的所有内容。如果你以前看过Zakas的任何作品,你会发现他是个不折不扣。
如何改进Javascript代码的性能
而现在Ajax则是最为流行的一种方式。Javascript是一种解释型语言,所以能无法达到和C/Java之类的水平,限制了它能在客户端所做的事情,为了能改进他的性能,我想基于我以前给Javascript做过的很多测试来谈谈自己的经验,希望能帮助大家改进自己的Javascript脚本性能。
语言层次方面循环循环是很常用的一个控制结构,大部分东西要依靠它来完成,在Javascript中,我们可以使用for(;;),while(),for(in)三种循环,事实上,这三种循环中for(in)的效率极差,因为他需要查询散列键,只要可以就应该尽量少用。
for(;;)和while循环的性能应该说基本(平时使用时)等价。如果是循环变量递增或递减,不要单独对循环变量赋值,应该在它最后一次读取的时候使用嵌套的++或—操作符。如果要与数组的长度作比较,应该事先把数组的length属性放入一个局部变量中,减少查询次数。局部变量和全局变量局部变量的速度要比全局变量的访问速度更快,因为全局变量其实是全局对象的成员,而局部变量是放在函数的栈当中的。
不使用Eval使用eval相当于在运行时再次调用解释引擎对内容进行运行,需要消耗大量时间。这时候使用Javascript所支持的闭包可以实现函数模版(关于闭包的内容请参考函数式编程的有关内容)减少对象查找因为Javascript的解释性,所以a.b.c.d.e,需要进行至少4次查询操作,先检查a再检查a中的b,再检查b中的c,如此往下。所以如果这样的表达式重复出现,只要可能,应该尽量少出现这样的表达式,可以利用局部变量,把它放入一个临时的地方进行查询。
这一点可以和循环结合起来,因为我们常常要根据字符串、数组的长度进行循环,而通常这个长度是不变的,比如每次查询a.length,就要额外进行一个操作,而预先把var len=a.length,则就少了一次查询。字符串连接如果是追加字符串,最好使用s+=anotherStr操作,而不是要使用s=s+anotherStr。如果要连接多个字符串,应该少使用+=,如s+=a;s+=b;s+=c;应该写成s+=a + b + c;以下是引用片段:varbuf=newArray();for(vari=0;i<100;i++){buf.push(i.toString());}varall=buf.join("");类型转换类型转换是大家常犯的错误,因为Javascript是动态类型语言,你不能指定变量的类型。
1. 把数字转换成字符串,应用"" + 1,虽然看起来比较丑一点,但事实上这个效率是最高的,性能上来说:以下是引用片段:(""+)String().toString()newString()这条其实和下面的“直接量”有点类似,尽量使用编译时就能使用的内部操作要比运行时使用的用户操作要快。String()属于内部函数,所以速度很快,而.toString()要查询原型中的函数,所以速度逊色一些,new String()用于返回一个精确的副本。2. 浮点数转换成整型,这个更容易出错,很多人喜欢使用parseInt(),其实parseInt()是用于将字符串转换成数字,而不是浮点数和整型之间的转换,我们应该使用Math.floor()或者Math.round()。
另外,和第二节的对象查找中的问题不一样,Math是内部对象,所以Math.floor()其实并没有多少查询方法和调用的时间,速度是最快的。