Javascript 在我的应用程序中有奇怪的行为

Javascript 在我的应用程序中有奇怪的行为,javascript,reactjs,react-native,Javascript,Reactjs,React Native,我在React本机应用程序中导航到第二个屏幕,下面是第二个屏幕的构造函数: constructor(props) { super(props); const navParams = props.navigation.state.params; if(navParams !== undefined && navParams.eventId) { let MyStr = "Inside IF"; } else {

我在React本机应用程序中导航到第二个屏幕,下面是第二个屏幕的构造函数:

constructor(props) {
    super(props);
    const navParams = props.navigation.state.params;

    if(navParams !== undefined && navParams.eventId) {
        let MyStr = "Inside IF";
    } 
    else 
    {
        let MyStr = "Inside ELSE";             
    }
}
navParams
不是未定义的(请参见下面的观察),而且
eventId
也不是空的(请参见下面的观察)。然而,执行的是
else
语句,而不是
if

是什么问题导致了这种奇怪的行为


eventId
0
,这意味着这将失败
(navParams!==未定义和&navParams.eventId)

你需要更多类似的东西

(navParams!==未定义和&navParams.eventId!==未定义)

(navParams!==未定义和&navParams.eventId>-1)


如果该值为
0
,则其计算结果基本上为
false

有趣!欢迎来到JS?@KyleKhalaf是的,JS几乎没有什么秘密可以欺骗新用户