javascript和(&&)运算符未按预期工作

MTK*_*MTK 2 javascript

我需要检查字符串是否等于定义的值和对象是否有hash密钥.

我对此非常困惑:

var my_string = 'some_string';
var my_obj = {'hash':'4010f89a05c236cd4f3a5c7558af0e70dc4216454d2d5155a285bfbad752ce51f9510272821a254'}
console.log((my_string == 'some_string' && my_obj['hash']));
Run Code Online (Sandbox Code Playgroud)

那回归 4010f89a05c236cd4f3a5c7558af0e70dc4216454d2d5155a285bfbad752ce51f9510272821a254

预期truefalse(在此示例中预期true).

gun*_*unn 7

它工作正常.

(my_string == 'some_string' && my_obj['hash'])等于"4010f89a05c236cd4f3a5c755..."真正的.例如,这可以在if语句中用作条件.

您也可以将其转换为实际的布尔值:

!!(my_string == 'some_string' && my_obj['hash'])
Run Code Online (Sandbox Code Playgroud)