各种JavaScript开发工具比较
来源:it168 发布时间:2007-10-23 13:29:00
1 引子
Java,C#等各种高级语句的开发工具琳琅满目,争放异彩。但作为AJAX的主角的JavaScript语言,配套的开发开具方面总保持着不相称的沉寂。缺乏良好开发工具的支持,编写 JavaScript程序,特别是超过500行以上的JavaScript程序变得深富挑战——没有代码诱导功能,没有实时错误检查,没有断点跟踪调试…,开发JavaScript代码有时就象在黑暗的隧道里靠触觉摸索着前行。
在代码中不小心增加了一个多余的“(”或“{”,整段代码可能马上象一堵猝然倒塌的城墙,在IE中报出的错误往往似是而非,甚至和真实原因往往相差十万八千里,让人如堕五里雾中。有事者引用柳传志的句概括编写 JavaScript程序的感受:战战兢兢,如履薄冰。
笔者曾经使用低级的文本编辑工具开发JavaScript程序,无数次地掉入调试的地狱中,深味其中苦涩和艰辛。幸好现在终于找到了许多好的开发工具,走出了黑暗,迎来了光明。
本文将介绍笔者不同阶段使用过的JavaScript开发工具,聊聊使用的感受,谈谈积累的经验,以图对JavaScript开发工具有一个系统的讲述。如果您正在为寻找一款好的JavaScript开发工具、或已经陷入调试的怪圈中,那么通读本文,你足可开怀一笑。
2 刀耕火种
早期曾有一段时间使用Notepad开发JavaScript程序:写一段程序需要不停地在JavaScript开发手册和编码窗口之间来回切换;编写和调试需要时刻同步进行:编写了几行代码后,就开始测试了,用alert()打出结果,直到保证当前的成果正确后,才能继续往下写几行,然后又重新使用 alert()检查之,周而返复,亦步亦趋,摸索前进。
在Notepad中编写JavaScript代码, new,if,else等这些大名鼎鼎的“关键人物”已经“泯然众人矣”——和变量名、常量、函数没有任何区别。所以,当代码量逐渐膨胀后(大约超过 200行),代码结构组织,上下文关联查看,前后逻辑阅读以及代码重构都变得困难起来,渐渐让人体力不支。
这种简单原始的刀耕火种式的编程让我叹谓于“公欲善其事,必先利其器”教诲之深刻,同时也对先人仅使用粗陋工具就创造出无数伟大奇迹的壮举充满敬意。
3 破牛车
比起Notepad,使用Editplus,UltraEdit,Editeur等的编辑工具就舒服多了。因为这些编辑工具可高亮显示语言关键字,并用不同的颜色显示对象,常量等不同语义元素,同时这些工具对程序代码结构也有一定的感知,比如当光标在一个代码块中换行时,光标会自动缩进,图 1是EditPlus编辑JavaScript程序的效果图:
图 1 EditPlus编辑JavaScript程序
此外,这些工具一般都具强大的查寻、替换,块操作等编辑功能,非Notepad能同日而语。所以诸如EditPlus这些虽不完美的破牛车已经把我们从完全人力劳作的噩梦中解救出来。直到现在,大部分的开发者应该还都是使用诸如此类编辑工具,笔者大部分业已完成的JavaScript程序也大多都在 Editplus中完成。


猜你喜欢
- 在C#中,程序采用了的驱动采用了事件驱动而不是原来的消息驱动,虽然.net框架提供的事件已经十分丰富,
- // Xml 转 数组, 包括根键 function xml_to_array( $xml ) { $reg = "/<(\
- 前言今天我要教大家的是 如何实现nonebot插件之ChatGpt注意,本文涉及异步爬虫,json文件读写等知识点准备1.获取开发者key获
- 在工作中,我们经常会写出这种代码:import MHeader from '../../components/m-header/m-
- Fucklt.py 使用了最先进的技术能够使你的代码不管里面有什么样的错误,你只管 FuckIt,程序就能"正常"执行,
- 1.将字符的数字转成数字,比如'0'转成0可以直接用加法来实现例如:将pony表中的d 进行排序,可d的定义为varchar
- 目录plsql141. 安装注册使用 1.激活了会提示激活成功plsql developer14是由Allround Automa
- 代码实现的目的:为一个自定义的类的某个属性在使用它时候,触发某个事件。 该程序的效果:点击输入按钮,弹出一个脚本提示输入框让用户输入他的姓名
- 正态分布应用最广泛的连续概率分布,其特征是“钟”形曲线。这种分布的概率密度函数为:其中,μ为均值,σ为标准差。求正态分布曲线下面积有3σ原则
- 本文实例讲述了Python基类函数的重载与调用方法。分享给大家供大家参考。具体分析如下:刚接触Python语言的时间不长,对于这个语言的很多
- 问题:项目中有一个需求,一个tabBar下面如果没有内容就不让该tabBar显示,当然至于有没有内容,需要我们通过请求的来判断,但是由于请求
- 目录前后端传输数据的编码格式Ajax提交urlencoded格式数据Ajax通过FormData上传文件Ajax提交Json格式数据Ajax
- 一、Base64编码原理步骤1:将所有字符转化为ASCII码;步骤2:将ASCII码转化为8位二进制;步骤3:将二进制3个归成一组(不足3个
- 参数数量及其作用tf.layers.dense用于添加一个全连接层。函数如下:tf.layers.dense( i
- 一、异常处理在程序开发中如果遇到一些 不可预知的错误 或 你懒得做一些判断 时,可以选择用异常处理来做。import requestswhi
- 在风起云涌的互联网浪潮中,产品迭代的速度越来越快。随着用户需求的激增,也不断带来了对设计师能力要求的提高。初入交互设计领域几年来,明显发现可
- 1.因为oracle 10g暂时没有与win7兼容的版本,我们可以通过对安装软件中某些文件的修改达到安装的目地。 a)打开“\ORACLE1
- 使用del和drop方法删除DataFrame中的列,使用drop方法一次删除多列数据准备:import pandas as pd 
- 为了提高Asp程序的性能,人们常常将经常使用的数据缓存在 Application,但是你修改了数据库后怎么让application更新呢,本
- 需求:在django中,有时候我们需要在一个表单中设置多个按钮实现不同的功能。解决方法:为不同按钮添加不同name属性,然后再后台判断nam