在JavaScript代码中获取最后声明的结果

鉴于是与JavaScript代码的文件。 例如:

1 + 1; 3 + 3; 

我想要接收最后一个expression式(在这种情况下是6)的值。

这可以通过

 node --print "1 + 1; 3 + 3;" 

但是我无法将代码作为string传递,因为代码可能包含与引号(例如节点-p“1 + 1; aFunction(”string“)”)相冲突的引号。

不幸的是,节点的–print参数不能处理文件。

另一种方法是修改源文件。 我可以使用具有所需行为的eval-Function,即eval(“1 + 1; 3 + 3”)返回6.不幸的是,我遇到了与引号相同的冲突。

我希望我能说清楚一点。 我期待着你的回答。

如果你在Linux上,也许是MacOS,也许可能是Windows / Cygwin,你可以把代码放在一个文件中,然后试试这个:

 node -p < thefile.js