锁定老帖子 主题:Javascript练习环境
精华帖 (0) :: 良好帖 (4) :: 新手帖 (0) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2010-01-26
最后修改:2010-01-26
在工作中,我们使用Javascript基本上是在浏览器这个环境里面。可是无论是Firefox + Firebug,还是Safari的Javascript调试环境,对于学习Javascript和练习Javascript都不甚方便。其实,我们完全可以像Python或者Ruby那样学习Javascript。
首先,安装Javascript的解析器。自从Google推出V8 Javascript引擎之后,Javascript引擎便成为浏览器厂家比拼的重要战场。但世界上,Mozilla的Javascript解析器(C版本和Java版本的)很早就公布在其网站上面,只是我们很少使用罢了。我们这里选用V8引擎作为Javascript引擎。(以下以MacOS为例,Linux/Windows可以借鉴)
1. 安装scons scons是一个用python写的替代Make和Makefile的build工具。功能肯定强于Make(大胆猜测也强于Ant和Maven,因为它的执行程序,配置文件都是Python的)。安装最新版本就好了。这里有个前提条件,必须使用Python2.5以上版本。
2. 从svn上check out V8引擎源代码 svn checkout http://v8.googlecode.com/svn/trunk/ v8
3. 进入源代码目录,运行以下命令: scons sample=shell 确保安装的scons在PATH里面。 build完成后,能看到两个重要的文件:libv8.a和shell。我建议可以mv shell v8。这个v8就是Javascript解析器。 你可以运行v8 或者v8 <javascript file>。
4. 尝试修改少量的代码 浏览器的Javascript是不能print的,你看结果一般使用alert或者firebug的console.log。但是一般独立的Javascript(如V8,或者Mozilla的Javascript引擎)都能使用print察看结果。可是我们发现在v8里面打印array结果不是很友好: 譬如: var arr = [1,2,3]; print(arr); 输出是:1,2,3而不是[1,2,3]。 我们可以修改源代码,让输出更友好一些。修改src/array.js /** * @author AnkyHe * Use [ ] to enclose array output * Example: * var arr = [1,2,3]; * print(arr); * --> 1,2,3 // current * --> [1,2,3] // revised */ function ArrayToString() { if (!IS_ARRAY(this)) { throw new $TypeError('Array.prototype.toString is not generic'); } return "[" + Join(this, this.length, ',', ConvertToString) + "]"; } /** * @author AnkyHe * Use [ ] to enclose array output * Example: * var arr = [1,2,3]; * print(arr); * --> 1,2,3 // current * --> [1,2,3] // revised */ function ArrayToLocaleString() { if (!IS_ARRAY(this)) { throw new $TypeError('Array.prototype.toString is not generic'); } return "[" + Join(this, this.length, ',', ConvertToLocaleString) + "]"; } 然后重新到v8目录scons一下就OK了。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-01-28
这个对学习语法什么的估计有用
但是实际上大部分情况下 JavaScript都是和操作dom元素有关的,这个估计就不行了 用浏览器其实也不算麻烦 当然 有人习惯这种控制台模式 |
|
返回顶楼 | |
发表时间:2010-01-30
joyfun 写道 这个对学习语法什么的估计有用
但是实际上大部分情况下 JavaScript都是和操作dom元素有关的,这个估计就不行了 用浏览器其实也不算麻烦 当然 有人习惯这种控制台模式 现在用到的JS几乎都是处理页面效果,或者用Ajax和服务端交互数据。而且还要考虑浏览器兼容性,感觉这种纯console下的试验只能学习纯JS。而且个人觉得firebug挺好的,要不是它我早投奔Chrome了…… |
|
返回顶楼 | |
发表时间:2010-02-01
楼主不知用过apatana,也是非常好调试JS以及其它脚本语言,拿出来分享下。谢谢
|
|
返回顶楼 | |
发表时间:2010-02-01
不知者無畏啊!Python寫的就強啊!
|
|
返回顶楼 | |
浏览 8524 次