簡體   English   中英

console.log在求值之前/不求值時的表達式

[英]console.log an expression before/without evaluation

給定一條語句,例如let boolVal = 1 < 2 ,有沒有辦法控制台記錄實際表達式,即1 < 2 不是 true結果?

 let boolVal = 1 < 2; console.log(boolVal) // logs out the boolean result console.log(boolVal.toString()) // logs out the boolean result as a string /* is there a way to get just '1 < 2' itself to be logged out? */ 

您可以通過創建自定義函數來實現此目的:

 function printExpression(x,y){ console.log( (x<y?x:y) + " < " + (x<y?y:x)); } printExpression(1,2); printExpression(4,3); 

您可以創建一個進行比較的函數,並記錄該函數的結果和函數本身。

 function boolValComparer(val1, val2) { console.log(val1, '<', val2); // logs the boolean comparison as string with parameters return val1 < val2; } let boolVal = boolValComparer(1, 2); console.log(boolVal) // logs out the boolean result console.log(boolValComparer) // logs out the comparer function as a string 

let boolVal = 1 < 2;

您不能直接記錄1 <2 ,因為它們已比較並存儲在boolVal中。 您可以做的是一種解決方法。

12存儲在變量var1和var2中。

let boolVal = var1 < var2

if boolVal:
    console.log(var1 + "<" + var2)
else:
    console.log(var1 + ">" + var2)

從評論部分的答復中,我看到您需要一個具有不同操作數的通用解決方案。 我能想到的最簡單的解決方案是使用eval。

1-創建一個字符串數組array []。 您可以創建一個字符串。 “” +表達式。 2- console.log(array [index] + eval(array [index]))

雖然我不建議。 評估對性能和安全性都不利。 另一個解決方法是為您從第一步創建的結果和字符串建立連接。 喜歡2個數組或創建具有2個屬性的對象。 {value :, expression}。 當您打印變量時,可以按照喜好方式打印它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM