系统地学习JavaScript

入门

  1. 学会DIV+CSS布局

使用DIV+CSS布局标准网页,可以使前端XHTML代码更少、结构更清晰,这有利于轻松用JavaScript操作DOM,比如,要展示一个3 行3列的列表,如果用传统的表格布局,现在要你用JavaScript动态生成这个列表,那么就需要一个循环嵌套,如果采用li结构加CSS浮动布局,一 次循环就好了。当然,WEB标准化不是一定不能使用表格,我的意思是结构清晰的XHTML更易于把JavaScript效果或功能整合到项目中。

  1. 掌握几种开发测试工具

作为一个开发人员,熟悉测试工具是必须的,这有助于提高你发现问题和解决问题的效率,对于特别大的项目更是如此。JavaScript和XHTML开发测试利器我就先推荐两个最常用的,它们是:Web Developer和Firebug。

  1. 熟悉JavaScript每一个方法的作用

这一要求听起来似乎有点不太实际,我想这个要求对于像C#、JAVA这些大型语言来说确实是,因为这些语言类库实在太庞大了,相信没有人可以全面记 住它,而且也是没有必要全部记住,比如用JAVA做网页与手机开发所关注的类库是不一样的。而JavaScript则不是,它的内置方法函数真的不多,先 全面熟悉一下,开发起来也将得心应手,比如,你一开始可能认为JavaScript有trim()这个很多语言都有的去行头行尾空格的方法,当你了解 JavaScript内置函数库后你会发现原来在JavaScript中这些方法是要自己去实现。再比如,如果你是从其它比较强大的语言转过来玩 JavaScript,你又可能认为JavaScript应该有MD5加密的方法,当然这也是没有的,但有人用JavaScript实现了这样的方法,即 JavaScript MD5。说到底JavaScript内置方法少的可怜,但很多牛人写了一些新方法增加JavaScript功能,比如prototype框架主要是对 JavaScript基础函数进行原型扩展的。

  1. 了解DOM编程

了解DOM编程算是学习JavaScript过程比较重要的课程,因为JavaScript除了编写一些纯数据处理的逻辑外,更多的是在动态更改 XHTML的结构和内容,以达到界面动态更新的目的,而这些工作都要依赖DOM编程。jQuery框架在这方面封装的相当好,提供了丰富的DOM操作方 法,可以让你轻松找到页面任何地方的一个DOM节点(XHTML标签),然后进行相关操作(增、删、改、查)。对于有过用其它语言操作XML文档经验的朋 友,相信这一块很快上手。

  1. 接触并使用AJAX

在今天,学习了JavaScript而不使用AJAX,那是埋没JavaScript优势了(AJAX本身并不能算是JavaScript内容)。 AJAX对于用户以及服务器来说都是有好处的,对于用户,提供更好的用户体验,最典型的一个应用场景:注册页面的用户名可用性预检测,传统的可能会遇到这 样的问题:用户填写了一堆资料后提交表单,结果被服务器告知这个用户被注册了,要用户重新填写资料注册,这对于大型多用户网站那是很致命的,因为用户输 10个用户名可能有一半已被使用了。对于服务器来说,减少网页流量,因为AJAX后,一般是按需加载数据的,不会因为局部更新而重新加载整个页面。比如一 个网页占三屏高,我们可以默认只加载第一屏的内容,当用户拉动滚动条往下的时候,再加载二三屏的内容。另外像WEB在线地图应用也是AJAX使用的典范。

提高

  1. 深入理解JavaScript this关键字

JavaScript this的作用与指向跟很多真正面向对象的开发语言是有很大差别的,它不始终指向当前对象,是会变化的。如果不注意这个问题,就有可能遇到看似没错的代码报错或不执行等问题。

  1. 学习JavaScript OOP编程

OOP是个好东西,它使程序员思考问题更有组织性,代码的组织也更清晰。JavaScript 也可以OOP,但与一些传统的OOP语言同样存在较大差别,所以要真正用熟JavaScript OOP也是需要下点功夫的。

  1. 了解闭包

JavaScript闭包也是被谈得比较多的一个话题,闭包使JavaScript变量作用域变得复杂起来,但这一特性又使这门语言变的更灵活了。

  1. 学习规范开发

团队精神相信大家是听过不少了,就职一个公司做开发,当然离不开团队,团队要想合作愉快,每个成员的编码必需符合一定规范,这也是每个公司对程序员的基本要求。关于规范通常指变量命名、文件组织、注释规范等,这方面知识与其它语言的规范是有相通性的。

  1. 找本算法的书读一读

我认为学会并使用一门语言并不是什么难事,难的应该是用语言这基本的语法与语句去解决一些复杂的问题。要解决一些复杂的问题,可能会用上一些算法, 有些算法实现可能是一个团队在做的,比如中科院中文分词的具体实现,另外像游戏常用自动寻径A*算法等。也许你认为你不可能在JavaScript开发上 遇到这么复杂的问题,其实这还要看你在做什么项目,如果你是在开发大型网页游戏,通常面临更多具有挑战性的难题,如果你有读过一些算法书籍,了解一些常见 问题的解决方法,在开发过程中自然会如虎添翼。另外,熟悉算法显然对于你日后接触其它开发语言也是有帮助的。

习惯

  1. 兼容、BUG问题做好笔记

CSS与JavaScript浏览器兼容问题最好做好笔记,因为这些问题,或者说BUG是比较诡异的,这些问题浏览器不会提示你错在哪里,IDE也 不会提示你,特别是CSS兼容问题,这就会导致你在开发过程碰到这样的问题会卡老半天得不到解决。即使之前解决过同类问题,以后可能又会碰上,结果之前没 有做好笔记加强记忆,注定你要再受罪一次,因为这些兼容问题不是一两个,临时记忆效果是不明显的。以我经验,很多问题是在IE6下发生的,现在IE6连微 软自己都希望加速它灭亡,这对于前端开发的我们来说当然是一个好消息。

  1. 阅读优秀的代码,比如jQuery

阅读优秀代码绝对也是自我提高的好方法,这不仅可以了解优秀代码的组织规范,更可以了解一些功能的实现思路。比如jQuery就是一个非常值的学习 的JavaScript框架。当然了,要阅读这样专业的JavaScript框架,JavaScript基础要扎实,不然看的过程中会遇到太多疑问,甚至 对自己的信心也是一种打击。

注意

  1. 在JavaScript入门之前避免直接使用JavaScript框架做开发

如果你没有任何JavaScript基础,请不要直接使用JavaScript框架做开发,我认为这可能会误导你对一门语言的认识,比如你直接使用 了jQuery用点连起来的语句写法,你是否会认为这是JavaScript语法的一种呢?再比如你使了prototype你不要把框架扩展后的基类方法 认为是JavaScript内置的。我认为JavaScript框架是用来提高效率的,它绝对不是JavaScript入门应该学习的。

  1. 网上找的很多例子可能不是跨浏览器兼容的

有很多JavaScript效果源码是N年前某网友写的,N年前是IE的天下,于是一些前端懒得解决脚本跨浏览器兼容问题,使写出来的脚本只适用于 IE。当你得到这样的一段代码,请不要说垃圾,也不要为此发牢骚,因为这些代码并不是没有一点价值的,如果你了解JavaScript跨浏览器兼容问题, 相信你可以很轻松通过少需修改使代码有更好的兼容性。

转载于:https://www.cnblogs.com/lzplmv/p/3365632.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/421480.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab this指针,C++ this指针(直戳本质)

为了能让大家看清 this 指针的本质,我们会先讲一点 C 的历史——C 程序到C程序的翻译过程。C 程序到C程序的翻译C 是在C语言的基础上发展而来的,第一个 C 的编译器实际上是将 C 程序翻译成C语言程序,然后再用C语言编译器进行编译。C语言没有类…

WPF自定义控件 —— 装饰器

摘自:http://www.cnblogs.com/Curry/archive/2009/09/16/1567757.html 顾名思义就是装饰用的,也就是说不改变原有的控件结构,但可以为控件添加一些新的功能,或是为控件的显示外观增加些东西。如MSDN中的例子: 本来Text…

matlab填充点面,求大神指点绘制空间内散点图的包络面,,,散点程序如下

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼E[];a0;b0;c0;for Zp-50:2:50for Xp-200:2:200for Yp-200:2:200P1_1[cos(b)*cos(c) -cos(b)*sin(c) sin(b) Xp;sin(a)*sin(b)*cos(c)cos(a)*sin(c) cos(a)*cos(c)-sin(a)*sin(b)*sin(c) -sin(a)*cos(b) Yp;sin(a)*sin(c)-cos(a)*si…

对微软Microsoft Dynamics CRM 的认识

MS CRM的认识 技术层面: MS CRM使用了当前最为流行的Web Service作为数据交互的手段,这给我们的二次开发和系统级的集成带来了无可比拟的方便性、易用性。我们不用关心如何去访问CRM数据库,只需要关心我们要访问CRM中的哪一个对象&#xff0c…

yii+php+当前目录,Yii常用路径方法总结

Yii框架中的一些常见的路径方法的使用方法总结。在控制器添加CSS文件或JavaScript文件:Yii::app()->clientScript->registerCssFile(Yii::app()->baseUrl./css/my.css);Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl./css/m…

Java递归函数

原文:http://blog.163.com/zhuliqing_001/blog/static/293340982010101046597/ 1 、递归函数的定义: 答:递归函数即自调用函数,在函数体内直接或间接的调用自己,即函数的嵌套是函数本身。 2 、递归方式:递归…

php的ddd,在MVC框架中实现DDD – PHP

在mvc中,模型是一个层,它包含所有的域业务逻辑.在域驱动设计中,业务逻辑可以分为各种构建块.在域驱动设计域模型中.A domain model is a system of abstractions that describes selectedaspects of a sphere of knowledge,influence or activity (a domain).The model can the…

Netty Associated -- ByteBuf

ByteBuf ByteBuf是Netty的Server与Client之间通信的数据传输载体.他提供了一个byte数组(byte[])的抽象视图 buffer创建 我们推荐通过一个Unpooled的帮助方法来创建新的buffer而不是通过调用独立的构造器来创建 随机访问索引 就像普通的原声字节数组一样, ByteBuf使用零基坐标(z…

php 根号2计算过程,根号2以及π的计算--关于无理数的畅想

[导读]这两篇文章里,我发现不需要那些老师教的范式也能很好地理解那些现代概念,并且理解的更深刻。这两篇文章里,我发现不需要那些老师教的范式也能很好地理解那些现代概念,并且理解的更深刻。我一般假设自己从来没有学过微积分&a…

oracle对象权限 函数,oracle的系统和对象权限

alter any cluster 修改任意簇的权限alter any index 修改任意索引的权限alter any role 修改任意角色的权限alter any sequence 修改任意序列的权限alter any snapshot 修改任意快照的权限alter any table 修改任意表的权限alter any trigger 修改任意触发器的权限alter clust…

批处理程序实例

一、交互界面设计 没啥说的,看看高手设计的菜单界面吧:echo offclstitle 终极多功能修复:menuclscolor 0Aecho.echo echo 请选择要进行的操作,然后按回车echo echo.echo 1.网络修复及上网相关设置,修复IE,自定义屏蔽网站echo.echo 2.病毒专杀…

oracle 10g dsg,【ORACLE】relink oracle 10g 数据库

通常要迁移一个数据库,我们会使用1 冷备份,整个数据库迁移,2 rman duplicate 功能进行复制到本机或者复制到异机,前面两种都必须先在目标库上安装软件。这里测试另外一种方法:对于单实例数据库,复制整个ora…

任务分配与时间估计

各成员的任务分配与时间估计如下: 项目所需总时间为: 转载于:https://www.cnblogs.com/buaa-smile/p/3383374.html

vbs 连oracle 负载均衡,(原)QTP中用VBS调用PLSQL并执行相关语句

今天工作的需求是要在录制一段web程序之前要调用plsql并执行一段数据库代码清空相关数据才能做web录制测试,本来是想用QTP直接录制plsql的,但是后来发现自己对qtp录制window application并不是很了解,选定了 Automation菜单下的Record and Ru…

unity中发布android时候出现这样的提示错误:error:device not found

原因很简单,就是你没开启安卓设备,无论是安卓手机还是安卓虚拟器。。 解决办法:只要开启安卓虚拟器或者连接手机即可 再次打开cmd命令窗口,找到apk文件所在路径,例如: D: 回车(我的是在d盘根目录…

Oracle 每个session的限制,限制oracle普通用户能且只能kill自己的会话

声明:仅用于测试环境方便调试,不可能应用于生产环境;故请勿加入到程序源代码来实现自动杀进程。只需一个参数,就能kill用户自己的会话,请小心操作,以免误kill进程。使用方法:新开一个session后&…

Hessian简介

Hessian Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能。 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据目 录 1介绍 1.1 注意事…

linux 以某个用户执行,Linux root用户肿么以制定的用户去执行某个程序。

chmod o-x m1说明:命令格式:chmod [options] mode files只能文件属主或特权用户才能使用该功能来改变文件存取模式。mode可以是数字形式或以who opcode permission形式表示。who是可选的,默认是a(所有用户)。只能选择一个opcode(操作码)。可指…