单个等号如何在javascript中的if语句中起作用

dra*_*sea 1 javascript

最近我看到一个声明在互联网上使用javascript工作,我想知道javascript中单个等号(=)的含义是什么,因为我主要在if语句中使用.
它是一个比较函数,包括双等号(==)

if(i = 1) {
    alert(i);
}
Run Code Online (Sandbox Code Playgroud)

这工作,我想知道当if语句被赋值给变量i的1时会发生什么,并检查i的值是否相同:

i = 1
if(i) {
    alert(i)
}
Run Code Online (Sandbox Code Playgroud)

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

  if(var i = 1) {
        alert(i);
  }
Run Code Online (Sandbox Code Playgroud)

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

Den*_*ret 5

分析的第一部分当然是正确的.

现在,有趣的部分可能是你的最后一个代码if (var ...) {不起作用的原因.

它不起作用,因为

1)

var something
Run Code Online (Sandbox Code Playgroud)

是一种陈述,而不是一种表达.

2)这是ECMAScript如何定义if语句:

IfStatement:

if(Expression)Statement else Statement

if(Expression)Statement

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

更多关于本文中的表达式vs语句.