javascript:获取解释器中返回的最后一个值的方法

时间:2012-11-22 16:27:46

标签: javascript interpreter

我正在尝试找到一种以编程方式获取Javascript解释器返回的最后一个值的方法。举个例子,Ruby的解释器有“_”:

1 + 2 #=> 3
_ #=> 3

我想知道Javascript中是否存在相同的内容。

编辑:

另一种可能实现这一目标的方法。是否有任何语法支持在换行符中继续表达式?像这样:

var a = \&
    1 + 2;
a #=> 3

某种字符组合告诉解释器表达式在换行符中继续(比如+用于字符串连接)。

目的:

这项研究的目的是找出我是否可以使用脚本标记加载JSON数据结构并成功从其范围之外分配它,如下所示:

<script> var json_struct = </script>
<script src="http://domain.com/myjsonfile.json" type='application/json' ></script>
顺便说一句,这不起作用。令人惊讶的是:)

1 个答案:

答案 0 :(得分:0)

  

目的:

     

本研究的目的是找出是否可以加载JSON数据结构   使用脚本标记并从其范围之外成功分配

基于浏览器的javascript中没有可以执行此操作的构造。

原因在于,自最早的Netscape时代起,浏览器在关闭脚本标记时始终启动脚本编译器。无论是javascript,VBscript(仅限IE)还是Tcl(使用相应的插件)。

这意味着任何不完整的语句都将被视为语法错误。每个<script>标记基本上都被视为单个文件。

你想要做的事情与Ruby中的相似:

a = require 'one_plus_two.rb'

我认为它不适用于Ruby。


但是,在支持Node.js等模块的非浏览器环境中,导入模块的方法确实会返回一个值(通常是一个对象)。所以你可以在node.js中做这样的事情:

var a = require('my_data_file.js');

不幸的是,require函数仅适用于本地文件。但是Node.js是开源的,因此您可以随时对其进行分叉并修改require以便能够像PHP一样从http://获取源代码。

唉,如果你要做的是浏览器脚本,那么上述观点就没那么了。