javascript - 可以使用 eval 来测试相等性吗?

标签 javascript jquery

我尝试从一个简单的条件中获得 bool 值返回。可以使用 Eval 函数来执行此操作,还是我必须使用 if 语句?

这是我的表达:

alert(eval($("#val1").val() + $("#val2").val() == $("#result1").val()));

它是数值,例如 1 + 1 = 2//true

最佳答案

您应该将它们转换为如下数字:

alert(Number($("#val1").val()) + Number($("#val2").val()) ==  Number($("#result1").val()));

如果你不将它们转换为数字,java脚本会假设它们是字符串并进行连接,然后val1(1) + val2(1) = 11

$("#btn").click(function(){
     console.log("Converted To Numbers: " + $("#val1").val() + " + " + $("#val2").val() + " = " + (Number($("#val1").val()) + Number($("#val2").val())));
    alert(Number($("#val1").val()) + Number($("#val2").val()) ==  Number($("#result1").val()) );
});

$("#btn2").click(function(){
    console.log("No Conversion: " + $("#val1").val() + " + " + $("#val2").val() + " = " + $("#val1").val() + $("#val2").val());
    alert($("#val1").val() + $("#val2").val() == $("#result1").val() );
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="val1">
<input type="text" id="val2">
<input type="text" id="result1">
<br>
<input type="button" id="btn" value="Convert To Numbers">
<input type="button" id="btn2" value="No Conversion">

关于javascript - 可以使用 eval 来测试相等性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37917815/

相关文章:

jquery - 鼠标移开时反向运行动画

javascript - JQuery UI 对话框可以记住它在打开和关闭之间的位置吗

javascript - 查询选择器错误: Not valid selector

javascript - Array.isArray 现在已弃用?

javascript - 如何使用 Axios 拦截器向响应添加一些 header ?

javascript - 如何为一组对象制作动画?

javascript - jquery 是如何实现 $(document).ready() 的?

Javascript - 如何获得更多的文本语音转换声音?

javascript - Tumblr:如何使用帖子标记控制 CSS(更新:没有 JQuery 的工作方法!)

javascript - 如何更改选择文件窗口的大小?