javascript - 为什么我不能在 Javascript 的同一个 if 语句中赋值然后检查一个变量?

标签 javascript

换句话说,为什么这不显示警报?

var x;
if (x = 1 && x > 0) {
    alert(x);
}

据我了解,x = 1 应该将 1 分配给 x 并返回 1。x > 0 检查失败。为什么?

最佳答案

实际上,&& 操作将优先于赋值。

在您的情况下,x 将是 1 && x > 0 的结果,即 false

var x;
if (x = 1 && x > 0) {
  alert(x);
}
console.log(x); // false

您可以使用括号强制执行操作顺序,as shown by Nina Scholz .

关于javascript - 为什么我不能在 Javascript 的同一个 if 语句中赋值然后检查一个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42655868/

相关文章:

javascript - IE 显示 innerHTML 的运行时错误

javascript - 用户提交表单后在 Web 应用程序上发送推送通知

Javascript 返回或赋值?

javascript - 谁能帮助我如何在 Meteor React 应用程序中使用 jQuery-formBuilder 插件

javascript - 如何在javascript中获取未知元素ID

javascript - Node 中带有 Mongoose 和 Promise 的奇怪异步行为

javascript - 如何在分辨率更改时重置网格分页内容?

javascript - 如何将外部 PHP 文件包含到 Joomla 文章中?

javascript - 如何在 false 时触发函数?

javascript - 使用 jQuery 向输入字段添加值