我有一个变量 var stIm = '';
我试图把它放到if and else语句中。
当我有
if (stIm = ''){}else{}
它只运行if部分
if (stIm == ''){}else{}
它只运行其他部分
有人知道如何解决这个问题吗?===
工作?
第一条
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');
}
但要更好的一个 严格的身份平等运算符 ===
它不胁迫值,先按类型检查左右操作数,再按值检查。
首先如果 if (stIm = ''){ console.log('yes'); }else{console.log('no');}。 告诉 "编译器",变量stIm取''(空字符串值),if(空字符串)为false,控制台将打印 "no",并执行else语句。
第二个if,试图比较2个空字符串,这将返回真。控制台中会显示 "Yes"。
语句中的 ===
equals 会返回相同的 true,因为会比较两个空字符串。
你需要用 === 进行深层的平等检查。 == 只比较值。所以,2 == "2 "是真。然而,2 === "2" 是假的。 === 比较值和类型。
所以你可以写。
if(stIm === ""){
return stuff
}
return otherStuff
如果你在if语句中写了 "return",就不需要 else了。更快的方法是使用三元条件。
stIm === "" ? stuff : otherStuff