我正在尝试找到一种以编程方式获取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>
顺便说一句,这不起作用。令人惊讶的是:)
答案 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://
获取源代码。
唉,如果你要做的是浏览器脚本,那么上述观点就没那么了。