javascript = vs == 用if和 else语句[关闭]。

问题描述 投票:0回答:1

我有一个变量 var stIm = ''; 我试图把它放到if and else语句中。

当我有

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

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

有人知道如何解决这个问题吗?=== 工作?

javascript if-statement variables boolean
1个回答
0
投票

第一条

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');
}

但要更好的一个 严格的身份平等运算符 === 它不胁迫值,先按类型检查左右操作数,再按值检查。


0
投票

首先如果 if (stIm = ''){ console.log('yes'); }else{console.log('no');}。 告诉 "编译器",变量stIm取''(空字符串值),if(空字符串)为false,控制台将打印 "no",并执行else语句。

第二个if,试图比较2个空字符串,这将返回真。控制台中会显示 "Yes"。

语句中的 === equals 会返回相同的 true,因为会比较两个空字符串。


-1
投票

你需要用 === 进行深层的平等检查。 == 只比较值。所以,2 == "2 "是真。然而,2 === "2" 是假的。 === 比较值和类型。

所以你可以写。

if(stIm === ""){
return stuff
}
return otherStuff

如果你在if语句中写了 "return",就不需要 else了。更快的方法是使用三元条件。

stIm === "" ? stuff : otherStuff
© www.soinside.com 2019 - 2024. All rights reserved.