0

我试图找到一种以编程方式获取 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>

顺便说一句,这是行不通的。令人惊讶:)

4

1 回答 1

0

目的:

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

基于浏览器的 javascript 中没有可以做到这一点的构造。

原因是,从最早的 Netscape 时代开始,浏览器总是在关闭 script 标签时启动脚本编译器。无论是 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 是开源的,所以你可以随时 fork 和修改它,require以便能够http://像 PHP 一样获取源代码。

唉,如果你想做的是浏览器脚本,那么上面的观点是没有意义的。

于 2012-11-23T15:06:08.657 回答