2014-07-17 81 views
1

鑑於是帶有JavaScript代碼的文件。例如:在JavaScript代碼中獲取最後聲明的結果代碼

1 + 1; 
3 + 3; 

我想接收最後一個表達式(在本例中爲6)的值。

這可以通過

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

來實現,但是我不能代碼作爲一個字符串傳遞,因爲代碼可以包含引號與引號衝突周圍的代碼(例如節點-p「1 + 1 ; aFunction(「string」)「)。

不幸的是,節點的--print參數無法處理文件。

另一種方法是修改源文件。我可以使用具有期望行爲的eval-Function,即eval(「1 + 1; 3 + 3」)返回6.不幸的是,我遇到了與引號相同的衝突。

我希望我能說清楚我的觀點。我期待着你的回答。

+2

如果你在Linux上你可以把東西在一個文件中,然後運行'node -p Pointy

+0

我在Windows上,但它也可以在這裏工作。謝謝!如果你發佈這個答案,我可以接受它;) – Philipp

回答

2

如果你在Linux和MacOS的可能,也許,也許在Windows/Cygwin的,你可以把代碼放在一個文件,然後試試這個:

node -p < thefile.js 
+2

在我的Ubuntu上它工作正常。有和沒有分號。 – Robert

+0

@Robert是的我認爲我的xterm tty已經有點瘋狂了 – Pointy