javascript - 单个等号在javascript中的if语句中如何工作

标签 javascript

最近我在互联网上看到一个在 javascript 中有效的语句,我想知道我在 if 语句中最常使用的 javascript 中的单个等号 (=) 是什么意思。
它是一个包含双等号(==)的比较函数

if(i = 1) {
    alert(i);
}

这行得通,我想知道当 if 语句被分配给变量 i 的值 1 并检查 i 的值是否与以下值相同时会发生什么:

i = 1
if(i) {
    alert(i)
}

但是我很快意识到,赋值变量需要有关键字var 所以我将代码更改为:

  if(var i = 1) {
        alert(i);
  }

这次代码不起作用。为什么?

最佳答案

您的第一部分分析当然是正确的。

现在,有趣的部分可能是为什么您的最后一段代码 if (var ...) { 不起作用。

它不起作用,因为

1)

var something

is a statement ,不是表达式。

2) 以下是 ECMAScript 定义 if statement 的方式:

IfStatement :

if ( Expression ) Statement else Statement

if ( Expression ) Statement

您必须在 if 子句中放置表达式,而不是语句。

More on expressions vs statement in this article.

关于javascript - 单个等号在javascript中的if语句中如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17974377/

相关文章:

字符串转义后的javascript意外标识符?

javascript - 多个特定目的的设置间隔或单个 super 间隔

javascript - 如何使用 jQuery 或纯 JavaScript 从 URL (REST API) 获取 JSON 数据到 UI?

javascript - 我如何在 emberjs 的 Controller 中操作 dom?

javascript - ActionCable 多次注册用户

javascript - JS 当用户点击显示不同的颜色

javascript - AngularJS:toArray orderBy 不适用于键、值对上的 ng-repeat

javascript - JavaScript 中的 LinkedList,如何将更改附加到列表?

javascript 在数组中最多保留相同 obj 的 3 次出现

javascript - 是否可以在 SVG 中监听图像加载事件?