鉴于诸如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? */
&#13;
答案 0 :(得分:1)
您可以通过制作自定义功能来实现此目的:
function printExpression(x,y){
console.log( (x<y?x:y) + " < " + (x<y?y:x));
}
printExpression(1,2);
printExpression(4,3);
&#13;
答案 1 :(得分:1)
您可以创建一个进行比较的函数,并记录该函数的结果和函数本身。
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
答案 2 :(得分:1)
let boolVal = 1 < 2;
您无法记录 1&lt; 2 直接因为它们被比较并存储在boolVal中。您可以做的是解决方法。
在变量var1和var2中存储 1 和 2 。
let boolVal = var1 < var2
if boolVal:
console.log(var1 + "<" + var2)
else:
console.log(var1 + ">" + var2)
答案 3 :(得分:1)
从评论部分的回复中,我发现您需要一个包含不同操作数的通用解决方案。 我能想到的最简单的解决方案是使用eval。
1-创建一个字符串数组array []。你可以创造一个字符串。 “”+表达。 2- console.log(array [index] + eval(array [index]))
虽然我不推荐。 Eval对性能和安全性都不利。 另一种解决方法是为结果和从第一步创建的字符串建立连接。像2个数组或创建具有2个属性的对象。 {value:,expression}。 打印变量时,可以打印它们。