在工作中,我们使用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了。
分享到:
相关推荐
这是伴随 Bloc 前端 Web 开发学徒培训的 JavaScript 练习库。 在解决这些练习之前,请遵循路线图中的环境设置。 在开始新练习之前,请务必从虚拟机的命令行运行git pull bloc master 。 这会将这个 repo 的 master ...
这是伴随 Bloc 前端 Web 开发学徒培训的 JavaScript 练习库。 在解决这些练习之前,请遵循路线图中的环境设置。 在开始新练习之前,请务必从虚拟机的命令行运行git pull bloc master 。 这会将这个 repo 的 master ...
这是伴随 Bloc 前端 Web 开发学徒培训的 JavaScript 练习库。 在解决这些练习之前,请遵循路线图中的环境设置。 在开始新练习之前,请务必从虚拟机的命令行运行git pull bloc master 。 这会将这个 repo 的 master...
这是伴随 Bloc 前端 Web 开发学徒培训的 JavaScript 练习库。 在解决这些练习之前,请遵循路线图中的环境设置。 在开始新练习之前,请务必从虚拟机的命令行运行git pull bloc master 。 这会将这个 repo 的 master ...
基于JavaScript的青藏高原城市化和生态环境迫切化大屏数据可视化系统源码.zip 基于JavaScript的青藏高原城市化和生态环境迫切化大屏数据可视化系统源码.zip 基于JavaScript的青藏高原城市化和生态环境迫切化大屏数据...
这是伴随 Bloc 前端 Web 开发学徒培训的 JavaScript 练习库。 在解决这些练习之前,请遵循路线图中的环境设置。 在开始新练习之前,请务必从虚拟机的命令行运行git pull bloc master 。 这会将这个 repo 的 master ...
涵盖最新的HTML5和CSS3规范,内容深入、细致、易于理解,案例丰富,实用,配以大量的练习。让读者知其然,并知其所以然。
本课程由浅入深,从六部分讲解JavaScript开发入门基础知识,内容包Chrome开发者工具和JavaScript的基本语法以及标准库、DOM、浏览器环境以及扩展知识。每一部分内容都包含基本原理讲解和操作演示,最后附带练习题。...
JavaScript中的运动练习 这是JavaScript轨道,它是上众多轨道。 它包含当前正在实施的所有练习,可供学生完成。 该课程包括各种核心练习-学生必须完成的核心练习-每个核心练习都可以解锁各种辅助练习。 您可以在...
这是伴随 Bloc 前端 Web 开发学徒培训的 JavaScript 练习库。 在解决这些练习之前,请遵循路线图中的环境设置。 在开始新练习之前,请务必从虚拟机的命令行运行git pull bloc master 。 这会将这个 repo 的 master ...
这是伴随 Bloc 前端 Web 开发学徒培训的 JavaScript 练习库。 在解决这些练习之前,请遵循路线图中的环境设置。 在开始新练习之前,请务必从虚拟机的命令行运行git pull bloc master 。 这会将这个 repo 的 master...
HTML,CSS和JavaScript练习 解决提出的所有练习的解决方案 由 。 该课程的结构以及在此存储库中解决的练习的结构如下: 模块0 。 课程和程序“用于HTML5移动访问的云服务设计”的介绍。 模块1 :介绍HTML,CSS,...
这是伴随 Bloc 前端 Web 开发学徒培训的 JavaScript 练习库。 在解决这些练习之前,请遵循路线图中的环境设置。 在开始新练习之前,请务必从虚拟机的命令行运行git pull bloc master 。 这会将这个 repo 的 master...
智能城市和交通管理:大数据技术可以帮助城市管理者监测和分析交通流量、能源消耗和环境污染等数据,为城市规划和交通管理提供决策支持。通过智能化的交通系统和城市基础设施,可以提高交通效率
ToyBox-cli 是玩具问题的环境生成器。 安装 安装模块: $ npm install -g toybox-cli 入门 生成一个新的玩具箱: $ toybox init 如果它提到找不到 gulp 运行npm install -g gulp 然后在新目录中运行toybox ...
练习使用纯JavaScript进行开发 得益于单元测试,它可以在一个有利于代码重做(重构)的环境中工作,它将告诉您新代码是否仍符合语句的规范。 运动水平 我将练习分为4个难度级别:简单,中等,困难,专家。 难度级别...
借助Code Board,您可以在尝试编码时复制聆听问题和提示的体验,因此在进行采访时,您将在那种环境中充满自信和自在。 使用代码编辑器和虚拟白板,代码板还可以帮助您练习绘制问题图表。 它是您自己的私人模拟面试...
这是伴随 Bloc 前端 Web 开发学徒培训的 JavaScript 练习库。 在解决这些练习之前,请遵循路线图中的环境设置。 在开始新练习之前,请务必从虚拟机的命令行运行git pull bloc master 。 这会将这个 repo 的 master...