很多做JS开发候会遇到一些莫名奇妙的问题,他们不理解为什么会出这么诡异的问题。其实我觉得问题很简单,就看下面几点你知道不知道!
一、JavaScript的产生背景。我想大多数从事JS方面工作的人应该都了解了,如果你不知道可以看看这里。http://baike.baidu.com/view/16168.htm 了解JS的背景有助于编写跨平台程序,值得一读。
二、JS运行在什么之上?有的人说JS是跑在系统里面的。我觉得不是,我的理解是这样:在IE中,JS中跑在WINDOWS的脚本宿主之上。脚本宿主的概念可以看这里:http://baike.baidu.com/view/1175354.htm 。其他浏览器则是为JavaScript提供了一个JavaScript引擎,JavaScript的运行速度很大程序上受浏览器的JS引擎影响。关于引擎方面的介绍,大家可以看下这里:http://www.ibm.com/developerworks/cn/linux/shell/js/js_engine/ 。
三、为什么同样的JS在不同的浏览器上结果不同呢?实际上如果明白第一和第二点,我想你会明白的。:)
四、关于IDE 。很多人喜欢用IDE去开发,确实IDE很不错。特别Eclipse或Aptana Studio 。实际上Aptana Studio 也是跑在Eclipse之上的插件。当然你也可以选择通过Eclipse去安装一些插件如:JSEclipse 。JSEclipse的更新URL为 http://download.macromedia.com/pub/labs/jseclipse/autoinstall 。 Aptana Studio 提供了自动学习机制,能够自动记录您常使用的自定义方法或属性,并进行提示。但是我个人认为IDE不并利于新手的成长,我还是推荐大家使用最原始Nodepad UltraEdit 或 Editplus ,Linux用户可以用gedit或Uex (UltraEdit的Ubuntu Linux版本)。
五、JS的调试工具。首先申明一点,就是我不知道如去调式ActiveX。因为我是Ubuntu办公环境,不写ActiveX。JS的调试工具还是不少的比如:IE下的 HttpWatch 或 F12 开发人员工具。Chrome下右击最后一个“审查元素” ,当然还有FireFox下的FireBug(小强)。
六、关于W3C 。很多人听说过W3C,但觉得W3C又离的很远。为什么呢,因为如果HTML中没有加入DTD申明时,浏览器会自动使用最松散的DTD申请。建议新用使用Strict DTD ,这样虽然对因为一些细节问题使得您的作品出错,但到了实战时候您会发现你所遇到的问题跟本就不是问题,当然很多问题会因为您的习惯问题而避免掉了。
七、一个小提示:如果你在编写一段程序的时候,开发过程中是完全通过的。但是切到IE环境下却会出错。这时候可以考虑下面几个顺题:
1、IE和FF的JS执行优先级是不一样的,FF会按页面中的SCRIPT位置进行顺序执行,如果需要下载,就等下载完再执行页面的JS 。但是IE会先执行页面中的JS,然后再执行下载的JS。
2、AJAX返回的数据是有没有乱码。这个可以用HttpWatch去看一下。
3、有些方法IE是不支持的比如:getElementsByClassName ,这时候得换种方式。
八、关于提问。我们在学习一个新东西的时候,或者遇到问题时都习惯性的到相关的群里面去提问,这很好。但提问要注意方式,否则很少人愿意回答你。如果你提问的第一句就是“请问有JS高手么?”我想十有八九没人会理你,你要记得高手往往是低调的,再说谁敢说自己是高手呢?或是你的问题会是非常的困难,不敢接。再就是“我是新手”这类,如果是这样我建议你先去学习两年再来提问。自己是新手就得学习啊。提问题之前先说明你遇到的问题,并说明你做过哪些尝试。你的的是怎么考虑的,并提供关键的代码段。如果有人只说了一个单词,千万别追着死问。他给你的词往往就是关键词,你大可以向这个方向去思想。如果你不能理解就先冷静下来考虑一下,然后再说明你不理解的地方。我最烦看到那种要代码的,十有八九我会把他请出群去。介绍几个JS群: JavaScript基础群:83665161 进阶群:18861555 39728697
个人能力有限,本文之述有若有偏谬之处还请朋友指正。
正在加载
