[英]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中。 您可以做的是一種解決方法。
將1和2存儲在變量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.