首页 > 解决方案 > javascript = vs == 带有 if 和 else 语句

问题描述

我有一个变量var stIm = '';,我试图将它放入 if 和 else 语句中。

当我有

if (stIm = ''){}else{} 它只运行 if 部分

if (stIm == ''){}else{} 它只运行其他部分

有谁知道如何解决这个问题?===行得通吗?

标签: javascriptif-statementvariablesboolean

解决方案


首先

var stIm = '';

if (stIm = '') { // assignment with a falsy value
    console.log('if');
} else {
    console.log('else');
}

分配一个虚假值(如undefined, null, 0, false, 空字符串'')并转到该else部分。

但第二个有效。

var stIm = '';

if (stIm == '') {
    console.log('if');
} else {
    console.log('else');
}

但是最好使用不强制值并首先按类型检查左右操作数然后按值检查的身份/严格相等运算符。===


推荐阅读